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 相关文章推荐
用js得到网页中所有的div的id
Oct 19 Javascript
node.js 中国天气预报 简单实现
Jun 06 Javascript
JavaScript的事件机制详解
Jan 17 Javascript
老生常谈jacascript DOM节点获取
Apr 17 Javascript
bootstrapvalidator之API学习教程
Jun 29 Javascript
Scala解析Json字符串的实例详解
Oct 11 Javascript
vue.js的computed,filter,get,set的用法及区别详解
Mar 08 Javascript
详解Angular6 热加载配置方案
Aug 18 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
Aug 24 Javascript
微信小程序开发的基本流程步骤
Jan 31 Javascript
详解如何使用webpack打包多页jquery项目
Feb 01 jQuery
JS函数动态传递参数的方法分析【基于arguments对象】
Jun 05 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 日志缩略名的创建函数代码
2010/05/26 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
2019/10/18 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
2020/05/12 PHP
THINKPHP5.1 Config的配置与获取详解
2020/06/08 PHP
Firefox window.close()的使用注意事项
2009/04/11 Javascript
20个非常棒的 jQuery 幻灯片插件和教程分享
2011/08/23 Javascript
基于javascript实现仿百度输入框自动匹配功能
2016/01/03 Javascript
ES6中非常实用的新特性介绍
2016/03/10 Javascript
jQuery实现点击后高亮背景固定显示的菜单效果【附demo源码下载】
2016/09/21 Javascript
Javascript+CSS3实现进度条效果
2016/10/28 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
vue 组件中slot插口的具体用法
2018/04/03 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
vue Element左侧无限级菜单实现
2020/06/10 Javascript
vue.js 输入框输入值自动过滤特殊字符替换中问标点操作
2020/08/31 Javascript
[00:36]DOTA2上海特级锦标赛 Archon战队宣传片
2016/03/04 DOTA
Python的dict字典结构操作方法学习笔记
2016/05/07 Python
Python实现简单过滤文本段的方法
2017/05/24 Python
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
Python编程实现的简单Web服务器示例
2017/06/22 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
2018/03/14 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
python如何对链表操作
2020/10/10 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
手把手教你用Django执行原生SQL的方法
2021/02/18 Python
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
Yankee Candle官网:美国最畅销蜡烛品牌之一
2020/01/05 全球购物
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
客服工作职责
2013/12/11 职场文书
测试工程师职业规划书
2014/02/06 职场文书
理想点亮人生演讲稿
2014/05/21 职场文书
企业团队精神心得体会
2016/01/19 职场文书
高一化学教学反思
2016/02/22 职场文书