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 相关文章推荐
浅谈JavaScript中的Math.atan()方法的使用
Jun 14 Javascript
使用js复制链接中的部分文字的方法
Jul 30 Javascript
JavaScript学习笔记之数组去重
Mar 23 Javascript
3种不同的ContextMenu右键菜单实现代码
Nov 03 Javascript
Bootstrap轮播图学习使用
Feb 10 Javascript
详解Sea.js中Module.exports和exports的区别
Feb 12 Javascript
详解vue.js全局组件和局部组件
Apr 10 Javascript
vue增删改查的简单操作
Jul 15 Javascript
关于前后端json数据的发送与接收详解
Jul 30 Javascript
微信小程序实现点击文字页面跳转功能【附源码下载】
Dec 12 Javascript
解决Layui 表单提交数据为空的问题
Aug 15 Javascript
element-ui 时间选择器限制范围的实现(随动)
Jan 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格式输出文件var_export函数实例
2014/11/15 PHP
PHP实现提高SESSION响应速度的几种方法详解
2019/08/09 PHP
Thinkphp5框架ajax接口实现方法分析
2019/08/28 PHP
js跨域和ajax 跨域问题的实现思路
2009/09/05 Javascript
一个页面放2段图片滚动代码出现冲突的问题如何解决
2012/12/21 Javascript
js关闭父窗口时关闭子窗口
2013/04/01 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
JQuery插件jcarousellite的参数中文说明
2015/05/11 Javascript
jquery点击缩略图切换视频播放特效代码分享
2015/09/15 Javascript
JS实现的仿QQ空间图片弹出效果代码
2016/02/23 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
JS实现图片预加载之无序预加载功能代码
2017/05/12 Javascript
NodeJS实现图片上传代码(Express)
2017/06/30 NodeJs
node.js中TCP Socket多进程间的消息推送示例详解
2018/07/10 Javascript
浅谈高大上的微信小程序中渲染html内容—技术分享
2018/10/25 Javascript
JavaScript Dom 绑定事件操作实例详解
2019/10/02 Javascript
[05:03]2018DOTA2亚洲邀请赛主赛事首日回顾
2018/04/04 DOTA
python 循环while和for in简单实例
2016/08/16 Python
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
Python内置函数——__import__ 的使用方法
2017/11/24 Python
Python使用zip合并相邻列表项的方法示例
2018/03/17 Python
Python 类的特殊成员解析
2018/06/20 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
基于python生成器封装的协程类
2019/03/20 Python
python对象与json相互转换的方法
2019/05/07 Python
通过实例了解Python str()和repr()的区别
2020/01/17 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
解决python 输出到csv 出现多空行的情况
2021/03/24 Python
治安消防安全责任书
2014/07/23 职场文书
处级领导班子全部召开专题民主生活会情况汇报
2014/09/27 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书
详解Vue的options
2021/05/15 Vue.js
详解CSS故障艺术
2021/05/25 HTML / CSS