lua中使用packagepath解決多個項目的路徑沖突問題
更新時間:2015年04月21日 09:34:36 投稿:junjie
這篇文章主要介紹了lua中使用packagepath解決多個項目的路徑沖突問題,本文描述了問題的產生環(huán)境和原因,并給出了解決方法,需要的朋友可以參考下
當多個lua項目在同一臺服務器中有多個文件的文件名相同時,會優(yōu)先使用路徑中的排在前的項目的文件,導致引用的文件并不是你預期的那樣。
例如:有項目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)