UNPKG

node-framework

Version:

node-framework

37 lines (29 loc) 2.52 kB
# public 在默认配置下,public目录用以存放静态资源(例如js, css)这个配置可以在`config/global.js`的`staticDir`中更改下面将默认使用public作为静态文件资源的目录 按照web应用的常用开发习惯,一般我们在`public`下再建立一层文件夹并命名为`assets`,再在其中分别建立`css`,`js`,`font`,`img`等文件夹用以分别存储脚本,样式文件,自定义字体和图片等这种分类方式基于静态资源类型,当然你也可以根据功能来划分,将同一个功能(模块)内使用的脚本和样式文件归类在同一个目录中 一个典型的静态资源目录结构如下所示: ![典型的静态资源目录结构](http://bs.baidu.com/weigou-baidu-com/e9af07ba2f8cb9e13729d43395b67703.png) 在默认配置下,public目录中的静态资源并不能直接被外部访问需要在`config/routes.js`额外添加静态路由规则,如下: ```javascript // 需要添加静态路由规则,才能访问public目录内的静态资源 '/assets/(.*)': { // 指定当前请求是否为静态文件请求 type: 'static', // 如果指定了target,则会用target的作为响应文件的name target: '/assets/{0}', // 以下配置参考 https://github.com/visionmedia/send#options // 是否需要使用etag etag: true, // max age maxAge: 1 * 365 * 24 * 3600 * 1000, // 类似于.bashrc这类的文件配置访问许可 deny allow ignore dotfiles: 'deny', extensions: false, index: false } ``` 至此,用户可以通过访问例如`/assets/css/common.css`来获取静态资源。因此在模板文件中(通常在`common/header.tpl`或者每个页面模板开头)可以通过添加`<link rel="stylesheet" type="text/css" href="/assets/css/common.css">`来引用样式资源文件 引用脚本文件的方式略微不同虽然用于也可以使用上述方式,例如`/assets/js/common.js`访问到脚本文件,但这并不符合现代前端模块管理的思想因此更常见的方式如下: 1. 在全局引入模块管理(如[RequireJS](http://requirejs.org/)或者[ESL](https://github.com/ecomfe/esl)等),例如`<script src="http://s1.bdstatic.com/r/www/cache/ecom/esl/1-6-10/esl.min.js"></script>` 2. 配置baseUrl,例如`<script>require.config({baseUrl: '/assets'});</script>` 3. 在每个页面模板最后引入页面所需的脚本文件,例如`<script>require(['./js/common', './js/config']);</script>`