openresty的lua_package_path
- 文档
lua_package_path可以配置openresty的文件寻址路径。官网文档如下:
# 设置纯 Lua 扩展库的搜寻路径(';;' 是默认路径):
lua_package_path '/foo/bar/?.lua;/blah/?.lua;;';
# 设置 C 编写的 Lua 扩展模块的搜寻路径(也可以用 ';;'):
lua_package_cpath '/bar/baz/?.so;/blah/blah/?.so;;';
然后require的字符串就会替换对应的问号?,一个文件就会去/foo/bar/下面寻找。
- example
在代码中require "controller.test",会依次根据package.path匹配对应的lua文件。即替换掉对应的问号。(在lapis框架中,在框架的根目录中创建一个文件夹名字叫controllers,写一个文件test.lua,可以正常输出,改为controller,找不到对应的文件夹,打开日志,查看openresty的寻找方式)
首先输出package.path:
/usr/local/openresty/site/lualib/?.lua;/usr/local/openresty/site/lualib/?/init.lua;/usr/local/openresty/lualib/?.lua;/usr/local/openresty/lualib/?/init.lua;./?.lua;/usr/local/openresty/luajit/share/luajit-2.1.0-beta2/?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;/usr/local/openresty/luajit/share/lua/5.1/?.lua;/usr/local/openresty/luajit/share/lua/5.1/?/init.lua
在log中查看:
no field package.preload['controller.test']
no file '/usr/local/openresty/site/lualib/controller/test.lua'
no file '/usr/local/openresty/site/lualib/controller/test/init.lua'
no file '/usr/local/openresty/lualib/controller/test.lua'
no file '/usr/local/openresty/lualib/controller/test/init.lua'
no file './controller/test.lua'
no file '/usr/local/openresty/luajit/share/luajit-2.1.0-beta2/controller/test.lua'
no file '/usr/local/share/lua/5.1/controller/test.lua'
no file '/usr/local/share/lua/5.1/controller/test/init.lua'
no file '/usr/local/openresty/luajit/share/lua/5.1/controller/test.lua'
no file '/usr/local/openresty/luajit/share/lua/5.1/controller/test/init.lua'
no file '/usr/local/openresty/site/lualib/controller/test.so'
no file '/usr/local/openresty/lualib/controller/test.so'
no file './controller/test.so'
no file '/usr/local/lib/lua/5.1/controller/test.so'
no file '/usr/local/openresty/luajit/lib/lua/5.1/controller/test.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
no file '/usr/local/openresty/site/lualib/controller.so'
no file '/usr/local/openresty/lualib/controller.so'
no file './controller.so'
no file '/usr/local/lib/lua/5.1/controller.so'
no file '/usr/local/openresty/luajit/lib/lua/5.1/controller.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
openresty根据package.path依次替换到寻找文件,全部寻找完毕还找不到就报错。
openresty的lua_package_path的更多相关文章
- Centos7安装Openresty
通过yum安装 在 /etc/yum.repos.d/ 下新建 OpenResty.repo 内容 [openresty] name=Official OpenResty Repository bas ...
- Kong配置参考
kong配置的官网说明:https://docs.konghq.com/1.0.x/configuration/ 1. 配置加载 如果您通过其中一个官方软件包安装了Kong,Kong会附带默认配置文件 ...
- 微服务Kong(六)——配置参考
1. 配置加载 如果您通过其中一个官方软件包安装了Kong,Kong会附带默认配置文件,该文件可以在/etc/kong/kong.conf.default中找到.要开始配置Kong,您可以复制此文件: ...
- 用Nginx+Lua(OpenResty)开发高性能Web应用
在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡.反向代理.代理缓存.限流等场景:而把Nginx作为一个Web容器使用的还不是那么广泛.Nginx的高性能是大家公认的,而Nginx开 ...
- OpenResty 简单编写一个Module
使用 Lua module 来进行 Lua 代码的复用是推荐的做法.然后在用户代码中直接用require()来调用 module代码: local myTest = {} function myTes ...
- Nginx+Lua(OpenResty)开发高性能Web应用
使用Nginx+Lua(OpenResty)开发高性能Web应用 博客分类: 跟我学Nginx+Lua开发 架构 ngx_luaopenresty 在互联网公司,Nginx可以说是标配组件,但是主要场 ...
- openresty 前端开发进阶一之http后端
做前端开发,大多数情况下,都需要跟后端打交道,而最常见的方式则是通过http请求,进行通信. 在openresty中,通过http跟后端整合通信的方式又很多种,各有各的好处,可以根据情况交叉使用 1. ...
- Openresty 与 Tengine
Openresty 与 Tengine Openresty和Tengine基于 Nginx 的两个衍生版本,某种意义上他们都和淘宝有关系,前者是前淘宝工程师agentzh主导开发的,后者是淘宝的一个开 ...
- openresty 前端开发轻量级MVC框架封装一(控制器篇)
通过前面几章,我们已经掌握了一些基本的开发知识,但是代码结构比较简单,缺乏统一的标准,模块化,也缺乏统一的异常处理,这一章我们主要来学习如何封装一个轻量级的MVC框架,规范以及简化开发,并且提供类似p ...
随机推荐
- java初学3
1.包装类 Java提倡的万物皆对象,但是数据类型的划分出现了基本数据类型和引用数据类型,那么我们怎么能把基本数据类型称为对象呢? Java为每个原始类型提供了封装类,Integer是java为int ...
- c++ 2.1 编译器何时创建默认构造函数
我们通常会说当生命一个 class 时,如果我们不为该 class 指定一个 constructor,那么编译器会替我们实现一个 connstructor,那么这种说法一定对吗? 事实上,这是不对的. ...
- C#利用VFW实现摄像头程序
最近在搞这个考试监控,找来VFW的资料,胡编乱凑而成. VFW全称为Video for Windows,是微软提供的,内嵌windows系统. 首先定义一个VideoAPI类. 首先调用avicap3 ...
- Hexo NexT主题添加点击爱心效果
给NexT主题内添加页面点击出现爱心的效果 创建js文件 在/themes/next/source/js/src下新建文件clicklove.js,接着把该链接下的代码拷贝粘贴到clicklove.j ...
- Mysql入门的10条语句
1.查看当前服务器下面,有那些库(database)? 答: show databases; 2.如何创建一个数据库? 答 : create database 最后面在写数据库名:分号结束 3.选择数 ...
- 第八篇:python基础_8 面向对象与网络编程
本篇内容 接口与归一化设计 多态与多态性 封装 面向对象高级 异常处理 网络编程 一. 接口与归一化设计 1.定义 (1)归一化让使用者无需关心对象的类是什么,只需要知道这些对象都具备某些功能就可以了 ...
- Java -- Matrix的一点认识
例如在如下一段代码中: Matrix m = new Matrix(2,3); for(int i=0; i<m.getRowDimension(); i++) { for(int j=0; j ...
- idiots
idiots 题目描述 给定 $n$ 个长度分别为 $a_i$ 的木棒,问随机选择 $3$ 个木棒能够拼成三角形的概率. 输入格式 第一行一个正整数 nn. 第二行 nn 个正整数,第 ii 个数表示 ...
- 【POJ 2387 Til the Cows Come Home】
Time Limit: 1000MSMemory Limit: 65536K Total Submissions: 59755Accepted: 20336 Description Bessie is ...
- 《c程序设计语言》读书笔记-5.8-天数和日期转换错误检查
#include "stdio.h" #include "stdlib.h" #include "string.h" static char ...