Lapis: 无法加载 `etlua` 文件。

我已经在 /usr/local/share/lua/5.1/lapis/views/ 中得到了 hello.etlua 。etlua 已经由 luarocks 安装。操作系统是 Debian。

下面这段代码:

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

普通的模板能够正常工作:

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" }
}))

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

点赞
用户2995502
用户2995502
`package.path = '/usr/local/share/lua/5.1/lapis/?.lua;' .. package.path`

`local lapis = require("lapis")`

将以上内容翻译成中文并且保留原本的 markdown 格式:

`package.path = '/usr/local/share/lua/5.1/lapis/?.lua;' .. package.path`:设置 lua 路径。

`local lapis = require("lapis")`:引入 lapis 库。
2014-11-10 10:24:51
用户1979882
用户1979882

解决方案是查找视图的路径错误。我把文件放在了 /usr/local/share/lua/5.1/lapis/views,但这是不正确的。正确的位置应该是 /usr/local/share/lua/5.1/views

2014-11-10 12:04:06