1

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?

2 Answers 2

3
package.path = '/usr/local/share/lua/5.1/lapis/?.lua;' .. package.path
local lapis = require("lapis")
Sign up to request clarification or add additional context in comments.

6 Comments

Thanks. Better but now I'm getting this error: /usr/local/share/lua/5.1/lapis/etlua.lua:3 loop or previous error loading module 'etlua'
I could be wrong but looks like your code is trying to load etlua from different locations, 1st "etlua already installed by luarocks", 2nd lapis loading /usr/local/share/lua/5.1/lapis/etlua.lua
There are three files "etlua.lua" in FS: /urs/local/share/lua/5.1/etlua.lua , /usr/local/share/lua/5.1/lapis/etlua.lua , /usr/local/share/lua/5.1/lapis/features/etlua.lua But if I rename the first file, nothing happens - the same error:(
Pathes to search (after updating) /usr/local/share/lua/5.1/lapis/?.lua; ./lua/?.lua; /etc/nginx/lua/?.lua; ./?.lua; /usr/local/share/luajit-2.1.0-alpha/?.lua; /usr/local/share/lua/5.1/?.lua; /usr/local/share/lua/5.1/?/init.lua;
Oh gosh, I found the problem. It was near your idea. Just wrong path to read views. not lapis but the parent of it
|
0

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.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.