當多個lua項目在同一臺服務器中有多個文件的文件名相同時,會優先使用路徑中的排在前的項目的文件,導致引用的文件并不是你預期的那樣。
例如:有項目A和項目B,都有一個文件test.lua,而test.lua這個文件在項目A和項目B內容都是不一樣的,如果nginx的配置中,lua的packagepath是把項目A放在了前面。那么項目B在引用test.lua的時候,會使用了項目B的test.lua文件,這就導致了錯誤的出現。
那要如何解決這個問題呢?
我們可以在各自的項目中,重新定義packagepath。這樣就避免了路徑沖突的問題。
例子:
復制代碼 代碼如下:
local p = "/diska/htdocs/work/"
local m_package_path = package.path
package.path = string.format("%s?.lua;%s?/init.lua;%s", p, p, m_package_path)