Reputation: 27211
I have got hello.etlua @ /usr/local/share/lua/5.1/lapis/views/ etlua already installed by luarocks. OS Debian. This code
local lapis = require("lapis")
local app = lapis.Application()
app:enable("etlua")
app:match("/", function()
return { render: "hello" }
end)
return app
gives me such error: Error
/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
Usual template works properly:
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" }
}))
I recieve the data in the log-file. What is it? What I'm doing wrong? Is this a bug?
Upvotes: 1
Views: 636
Reputation: 27211
The solution is wrong path of view. I put files at /usr/local/share/lua/5.1/lapis/views
. But this is incorrect. The correct location is /usr/local/share/lua/5.1/views
.
Upvotes: 0
Reputation: 61
package.path = '/usr/local/share/lua/5.1/lapis/?.lua;' .. package.path
local lapis = require("lapis")
Upvotes: 3