Module OpenResty要求找不到模块

Module OpenResty要求找不到模块,module,lua,require,openresty,Module,Lua,Require,Openresty,在Apache让我失望之后,我决定走OpenResty路线。 到目前为止,Lua代码正在执行,但是我选择将生成过程分为多个模块,以使代码更具可读性 -- Define modules table local modules = { head = require("head"), header = require("scripts.header"), leftNav = require(".scripts.leftnav") } 我尝试了几种要求文件的方法; -我已从/s

在Apache让我失望之后,我决定走OpenResty路线。 到目前为止,Lua代码正在执行,但是我选择将生成过程分为多个模块,以使代码更具可读性

-- Define modules table
local modules = {
    head = require("head"),
    header = require("scripts.header"),
    leftNav = require(".scripts.leftnav")
}
我尝试了几种要求文件的方法; -我已从/scripts/目录中取出一个文件,并将其移动到根目录,找不到该文件 -我已经尝试过在/scripts/目录中引用/out一个句点 一切都是徒劳的。根本找不到模块

找到这些文件需要什么特别的技巧吗

以下是错误日志的摘录:

stack traceback:
coroutine 0:
    [C]: in function 'require'
    ./html/mailarchive/index.lua:10: in function <./html/mailarchive/index.lua:1>, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", host: "localhost"
2017/05/12 10:26:13 [error] 113864#120792: *14 lua entry thread aborted: runtime error: ./html/mailarchive/index.lua:10: module 'head' not found:
    no field package.preload['head']
    no file './site/lualib/head.lua'
    no file './site/lualib/head/init.lua'
    no file './lualib/head.lua'
    no file './lualib/head/init.lua'
    no file '.\head.lua'
    no file 'C:\nginx\lualib\head.lua'
    no file 'C:\nginx\lua\head.lua'
    no file 'C:\nginx\lua\head\init.lua'
    no file 'C:\Program Files (x86)\Lua\5.1\lua\head.luac'
    no file './site/lualib/head.so'
    no file './lualib/head.so'
    no file '.\head.dll'
    no file 'C:\nginx\lualib\head.so'
    no file 'C:\nginx\head.dll'
    no file 'C:\nginx\loadall.dll'
stack traceback:
coroutine 0:
    [C]: in function 'require'
    ./html/mailarchive/index.lua:10: in function <./html/mailarchive/index.lua:1>, client: 127.0.0.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "localhost", referrer: "http://localhost/"
堆栈回溯:
协同程序0:
[C] :在函数“require”中
./html/mailarchive/index.lua:10:in函数,客户端:127.0.0.1,服务器:localhost,请求:“GET/HTTP/1.1”,主机:“localhost”
2017/05/12 10:26:13[错误]113864#120792:*14 lua条目线程中止:运行时错误:./html/mailarchive/index。lua:10:未找到模块“头”:
无字段包。预加载['head']
没有文件“./site/lualib/head.lua”
没有文件“./site/lualib/head/init.lua”
没有文件“./lualib/head.lua”
没有文件“./lualib/head/init.lua”
没有文件“.\head.lua”
没有文件“C:\nginx\lualib\head.lua”
没有文件“C:\nginx\lua\head.lua”
没有文件“C:\nginx\lua\head\init.lua”
没有文件“C:\Program Files(x86)\Lua\5.1\Lua\head.luac”
没有文件“./site/lualib/head.so”
没有文件“./lualib/head.so”
没有文件“.\head.dll”
没有文件“C:\nginx\lualib\head.so”
没有文件“C:\nginx\head.dll”
没有文件“C:\nginx\loadall.dll”
堆栈回溯:
协同程序0:
[C] :在函数“require”中
./html/mailarchive/index.lua:10:in函数,客户端:127.0.0.1,服务器:localhost,请求:“GET/favicon.ico HTTP/1.1”,主机:“localhost”,引用方:http://localhost/"

在进一步研究之后,我发现使用OpenResty时,句点(.)不是指执行脚本所在的当前目录,而是指nginx正在工作的目录-在我的例子中是C:\nginx

考虑到这一点,将我的资源定位器更改为:

require(".scripts.head")
require(".scripts.header")
(...)

成功了

新路径与C:\nginx\html\mailarchive\scripts\head.lua等相关

require(".html.mailarchive.scripts.head")
require(".html.mailarchive.scripts.header")
(...)