我想在我的sails js app中完全分离客户端和服务器端。
如果我删除'/'路线,它会自动从'assets'文件夹中提供名为index.html的文件。 我想从assets文件夹中提供另一个文件,我该怎么办?
答案 0 :(得分:2)
如果你看一下帆使用的中间件
<强>配置/ http.js 强>
order: [
'startRequestTimer',
'cookieParser',
'session',
'myRequestLogger',
'bodyParser',
'handleBodyParserError',
'compress',
'methodOverride',
'poweredBy',
'$custom',
'router',
'www',
'favicon',
'404',
'500'
],
我们可以看到它尝试将当前请求与router
中定义的config/routes.js
中间件匹配,如果找不到,则尝试在www
中提供静态文件中间件。如果两者都失败,则返回404。
&#39; www&#39;中间件强>
www
中间件只使用express的服务静态中间件。
www: (function() {
var flatFileMiddleware = require('serve-static')(sails.config.paths['public'], {
maxAge: sails.config.http.cache
});
return flatFileMiddleware;
})(),
默认情况下,此模块将发送&#34; index.html&#34;文件响应a 请求目录。
因此,如果您想使用sail的默认中间件,那么您可以将html文件放入assets/index.html
,assets/about/index.html
和assets/foo/index.html
,这些文件将用于{{分别为1}},/
和/about
。
但是,如果您真的想要控制它,那么您可以替换www中间件并将其替换为您自己的中间件。阅读关于middlewares和serve-static's documentation的帆文档。
您可以查看有关此主题的类似问题:Any way to serve static html files from express without the extension?
答案 1 :(得分:1)
您可以将Html
个文件放在资源文件夹中。 Sails将为html文件提供请求的URL。
假设您在about.html
文件夹中放置了一个html文件assets
,当请求网址<your-domain>/about.html
时,Sails会将其提供。