静态资源访问
项目开发时,一般都需要在模版里引用静态资源。
使用 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 感性认识
总结