我想在我的风帆js应用程序中完全分开客户端和服务器端。风帆js路由静态html
如果我删除'/'路径,它会自动从'assets'文件夹提供一个名为index.html的文件。 我想从assets文件夹中提供另一个文件,我该怎么做?
我想在我的风帆js应用程序中完全分开客户端和服务器端。风帆js路由静态html
如果我删除'/'路径,它会自动从'assets'文件夹提供一个名为index.html的文件。 我想从assets文件夹中提供另一个文件,我该怎么做?
您可以将Html
文件放置在资产文件夹中。 Sails将为请求的url提供html文件。
说,你放置一个HTML文件about.html
在assets
文件夹中,Sails将在请求url <your-domain>/about.html
时提供。
如果你看看那帆中间件使用
配置/ http.js
order: [
'startRequestTimer',
'cookieParser',
'session',
'myRequestLogger',
'bodyParser',
'handleBodyParserError',
'compress',
'methodOverride',
'poweredBy',
'$custom',
'router',
'www',
'favicon',
'404',
'500'
],
我们可以看到,它试图在config/routes.js
定义,以配合router
中间件当前请求如果没有找到,则尝试提供www
中间件中的静态文件。如果两者均失败,则返回404。
的 'WWW' 中间件
的www
中间件简单地使用表达的发球静电中间件。
www: (function() {
var flatFileMiddleware = require('serve-static')(sails.config.paths['public'], {
maxAge: sails.config.http.cache
});
return flatFileMiddleware;
})(),
默认情况下此模块将响应上的某个目录 发送请求“的index.html”文件。
所以,如果你想用帆的默认中间件,那么你可以把你的HTML文件进入assets/index.html
,assets/about/index.html
和assets/foo/index.html
将在服役/
,,并分别/foo
。但是,如果你真的想控制这个,那么你可以替换www中间件,并用你自己的中间件代替它。请阅读风帆的文件middlewares和serve-static's documentation。
你可以看看关于这一主题类似的问题:Any way to serve static html files from express without the extension?
调用当它不工作/对,而HTML推广。 –
user3712353
@ user3712353你只需要把html文件放在'assets/about/index.html' – MjZac