关于Nginx:Lapis:无法加载`etlua`文件

Lapis: could not load `etlua` file

我有hello.etlua @ /usr/local/share/lua/5.1/lapis/views/
etlua已经由luockcks安装。 OS Debian。
此代码

1
2
3
4
5
6
7
8
9
10
local lapis = require("lapis")

local app = lapis.Application()
app:enable("etlua")

app:match("/", function()
return { render:"hello" }
end)

return app

给我这样的错误:
错误

/usr/local/share/lua/5.1/lapis/application.lua:121: module
'views.index' not found: no field package.preload['views.index']could
not load etlua file no file './lua/views/index.lua' no file
'/etc/nginx/lua/views/index.lua' no file './views/index.lua' no file
'/usr/local/share/luajit-2.1.0-alpha/views/index.lua' no file
'/usr/local/share/lua/5.1/views/index.lua' no file
'/usr/local/share/lua/5.1/views/index/init.lua' no file
'./views/index.so' no file '/usr/local/lib/lua/5.1/views/index.so' no
file '/usr/local/lib/lua/5.1/loadall.so' no file './views.so' no file
'/usr/local/lib/lua/5.1/views.so' no file
'/usr/local/lib/lua/5.1/loadall.so' Traceback

stack traceback: [C]: in function 'require'
/usr/local/share/lua/5.1/lapis/application.lua:121: in function
'render' /usr/local/share/lua/5.1/lapis/application.lua:406: in
function [C]: in function 'xpcall'
/usr/local/share/lua/5.1/lapis/application.lua:400: in function
'dispatch' /usr/local/share/lua/5.1/lapis/nginx.lua:181: in function
'serve' content_by_lua:2: in function

通常的模板可以正常工作:

1
2
3
4
5
6
7
8
9
10
local template = etlua.compile([[
Hello <%= name %>,
Here are your items:
<% for i, item in pairs(items) do %>

<%= item -%> <% end %> ]])
print(template({
name ="leafo",
items = {"Shoe","Reflector","Scarf" }
}))

我收到了日志文件中的数据。
它是什么? 我做错了什么? 这是一个错误吗?


1
2
package.path = '/usr/local/share/lua/5.1/lapis/?.lua;' .. package.path
local lapis = require("lapis")


解决的方法是错误的观点。 我将文件放在/usr/local/share/lua/5.1/lapis/views。 但这是不正确的。 正确的位置是/usr/local/share/lua/5.1/views