资源(Assets)

概述

资源指的是在你的服务器上想让外界存取的静态文档(js、css、图档等等)。在 Sails,这些文档都放在 assets/ 目录,当你启动应用程序,他们会被处理并同步到一个隐藏的暂存目录(.tmp/public/)。这个 .tmp/public 文件夹就是 Sails 实际提供的内容,大致等同于 express 的「public」文件夹,或是其他你或许熟悉的网站服务器如 Apache 的「www」文件夹。这中间的过程允许 Sails 准备或预先编译在用户端上使用的资源,像是 LESS、CoffeeScript、SASS、spritesheets、Jade 模板等等。

静态中间件(Static middleware)

在幕后,Sails 使用 Express 的静态中间件来提供你的资源。你可以在 /config/http.js 设置这个中间件(例如 cache 设置)。

index.html

如同大多数网页服务器,Sails 实践了 index.html 约定。举例来说,如果你在新的 Sails 工程建立 assets/foo.html,便可通过 http://localhost:1337/foo.html 存取。但是,如果你建立 assets/foo/index.html,则可通过 http://localhost:1337/foo/index.htmlhttp://localhost:1337/foo 存取。

优先权

重要的是需注意静态中间件是安装在 Sails 路由之后。所以,如果你定义了一个自定义路由,但在你的资源目录也有文档与该路径冲突,自定义路由会在到达静态中间件前拦截请求。举例来说,如果你建立 assets/index.html 且没有定义路由在 config/routes.js 文档,它会被当成你的首页。但是如果你定义一个自定义路由 '/': 'FooController.bar',将优先采用此路由。