静态资源访问
项目开发时,一般都需要在模版里引用静态资源。
使用 thinkjs 命令创建项目时,会自动创建 www/static 目录,该目录下专门用来存放 JS、CSS、图片等静态资源。
0x0 听说new的项目自动就有www/static!?
传说默认创建的项目结构如下:
|--- development.js //开发环境下的入口文件
|--- nginx.conf //nginx 配置文件
|--- package.json
|--- pm2.json //pm2 配置文件
|--- production.js //生产环境下的入口文件
|--- README.md
|--- src
| |--- bootstrap //启动自动执行目录
| | |--- master.js //Master 进程下自动执行
| | |--- worker.js //Worker 进程下自动执行
| |--- config //配置文件目录
| | |--- adapter.js // adapter 配置文件
| | |--- config.js // 默认配置文件
| | |--- config.production.js //生产环境下的默认配置文件,和 config.js 合并
| | |--- extend.js //extend 配置文件
| | |--- middleware.js //middleware 配置文件
| | |--- router.js //自定义路由配置文件
| |--- controller //控制器目录
| | |--- base.js
| | |--- index.js
| |--- service //服务目录
| | |--- **.js //用户自己定义的服务
| |--- logic //logic 目录
| | |--- index.js
| |--- model //模型目录
| | |--- index.js
|--- view //模板目录
| |--- index_index.html
|--- www
| |--- static //静态资源目录
| | |--- css
| | |--- img
| | |--- js
其中是包含有www/static目录的,但现在通过thinkjs new出来的项目却没有这个目录,因此还需自行创建:
$ mkdir www && cd www
$ mkdir static
0x1 往其中添加文件
$ touch fuck.js && echo 'fuck 高数' > fuck.js
这里本人秉承一贯作风创建一个fuck.js文件,你也可按心情添加其他文件
然后启动项目并查看相应的页面 127.0.0.1:8360/fuck.js
如果一切正常的话,会出错!
0x2 同学,请填写符合基本法的URL
正确的路径应该是 127.0.0.1:8360/static/fuck.js
0x3 什么?你不喜欢static这个名字
那么可以通过修改src/config/middleware.js中resource的参数来修改:
修改前:
....
{
handle: 'resource',
enable: isDev,
options: {
root: path.join(think.ROOT_PATH, 'www'),
publicPath: /^\/(static|favicon\.ico)/ // <-- 此处将修改
}
},
....
修改后:
....
{
handle: 'resource',
enable: isDev,
options: {
root: path.join(think.ROOT_PATH, 'www'),
publicPath: /^\/(public|favicon\.ico)/ // <-- 此处修改了
}
},
....
还没完,对应的还得修改www/static为www/public:
修改前
|--- www
| |--- static //静态资源目录
| | |--- fuck.js
修改后
|--- www
| |--- public //静态资源目录
| | |--- fuck.js
大功告成,现在访问127.0.0.1:8360/public/fuck.js,就有了:
0xSegmentFuck 感性认识
- Thinkjs项目的目录结构在一定程度上对应着网站的URL(结合第一章)。
- 官网不可尽信。
- 调整src/config/middleware.js可以调整对项目中用到的中间件。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对天达云的支持。