lua中使用packagepath解決多個(gè)項(xiàng)目的路徑?jīng)_突問題
當(dāng)多個(gè)lua項(xiàng)目在同一臺(tái)服務(wù)器中有多個(gè)文件的文件名相同時(shí),會(huì)優(yōu)先使用路徑中的排在前的項(xiàng)目的文件,導(dǎo)致引用的文件并不是你預(yù)期的那樣。
例如:有項(xiàng)目A和項(xiàng)目B,都有一個(gè)文件test.lua,而test.lua這個(gè)文件在項(xiàng)目A和項(xiàng)目B內(nèi)容都是不一樣的,如果nginx的配置中,lua的packagepath是把項(xiàng)目A放在了前面。那么項(xiàng)目B在引用test.lua的時(shí)候,會(huì)使用了項(xiàng)目B的test.lua文件,這就導(dǎo)致了錯(cuò)誤的出現(xiàn)。
那要如何解決這個(gè)問題呢?
我們可以在各自的項(xiàng)目中,重新定義packagepath。這樣就避免了路徑?jīng)_突的問題。
例子:
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)
相關(guān)文章
Lua教程(二):C++和Lua相互傳遞數(shù)據(jù)示例
這篇文章主要介紹了Lua教程(二):C++和Lua相互傳遞數(shù)據(jù)示例,本文主要講解了基本數(shù)據(jù)類型的傳遞,比如整形(int)、字符串(string)、數(shù)字(number)及bool值,需要的朋友可以參考下2014-09-09