Thinkjs3新手入门之如何使用静态资源目录


Posted in Javascript onDecember 06, 2017

静态资源访问

项目开发时,一般都需要在模版里引用静态资源。

使用 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

如果一切正常的话,会出错!

Thinkjs3新手入门之如何使用静态资源目录

0x2 同学,请填写符合基本法的URL

正确的路径应该是 127.0.0.1:8360/static/fuck.js

Thinkjs3新手入门之如何使用静态资源目录

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,就有了:

Thinkjs3新手入门之如何使用静态资源目录

0xSegmentFuck 感性认识

  • Thinkjs项目的目录结构在一定程度上对应着网站的URL(结合第一章)。
  • 官网不可尽信。
  • 调整src/config/middleware.js可以调整对项目中用到的中间件。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
jQuery 研究心得 取得属性的值
Nov 30 Javascript
二级域名或跨域共享Cookies的实现方法
Aug 07 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
Apr 08 Javascript
引用外部脚本时script标签关闭的写法
Jan 20 Javascript
JS 新增Cookie 取cookie值 删除cookie 举例详解
Oct 10 Javascript
node.js实现BigPipe详解
Dec 05 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
Mar 13 Javascript
js select下拉联动 更具级联性!
Apr 17 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
Apr 13 Javascript
详解VueJS应用中管理用户权限
Feb 02 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
Sep 20 Javascript
element-ui如何防止重复提交的方法步骤
Dec 09 Javascript
浅谈JsonObject中的key-value数据解析排序问题
Dec 06 #Javascript
Thinkjs3新手入门之添加一个新的页面
Dec 06 #Javascript
vue 实现 ios 原生picker 效果及实现思路解析
Dec 06 #Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
Dec 06 #Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
Dec 06 #Javascript
js 两数组去除重复数值的实例
Dec 06 #Javascript
js 提取某()特殊字符串长度的实例
Dec 06 #Javascript
You might like
在php中判断一个请求是ajax请求还是普通请求的方法
2011/06/28 PHP
php实现的zip文件内容比较类
2014/09/24 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
2015/07/31 PHP
PHP入门教程之会话控制技巧(cookie与session)
2016/09/11 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
IE下window.onresize 多次调用与死循环bug处理方法介绍
2013/11/12 Javascript
jQuery CSS()方法改变现有的CSS样式表
2014/09/09 Javascript
nodejs教程之入门
2014/11/21 NodeJs
基于jQuery实现简单的折叠菜单效果
2015/11/23 Javascript
预防网页挂马的方法总结
2016/11/03 Javascript
Bootstrap基本插件学习笔记之按钮(21)
2016/12/08 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
2017/03/09 Javascript
javascript 中Cookie读、写与删除操作
2017/03/29 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
浅析JS抽象工厂模式
2017/12/14 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
2019/09/04 Javascript
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
[00:12]DAC2018 no[o]ne亮相SOLO赛 他是否如他的id一样无人可挡?
2018/04/06 DOTA
详细解读Python中解析XML数据的方法
2015/10/15 Python
Python爬虫爬验证码实现功能详解
2016/04/14 Python
Python多进程同步简单实现代码
2016/04/27 Python
python模块简介之有序字典(OrderedDict)
2016/12/01 Python
Python可变参数用法实例分析
2017/04/02 Python
详解python中的装饰器
2018/07/10 Python
Python简单过滤字母和数字的方法小结
2019/01/09 Python
Python Subprocess模块原理及实例
2019/08/26 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
tensorflow 环境变量设置方式
2020/02/06 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
image-set实现Retina屏幕下图片显示详细介绍
2012/12/24 HTML / CSS
详解HTML5中CSS外观属性
2020/09/10 HTML / CSS
意大利综合购物网站:Giordano Shop
2016/10/21 全球购物
阿玛尼化妆品美国官网:Giorgio Armani Beauty
2017/02/02 全球购物
大学生党员个人对照检查材料范文
2014/09/25 职场文书
后备干部推荐材料
2014/12/24 职场文书