Sails js route static html

时间:2016-11-07 10:16:59

标签: static sails.js single-page-application assets

我想在我的sails js app中完全分离客户端和服务器端。

如果我删除'/'路线,它会自动从'assets'文件夹中提供名为index.html的文件。 我想从assets文件夹中提供另一个文件,我该怎么办?

2 个答案:

答案 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.htmlassets/about/index.htmlassets/foo/index.html,这些文件将用于{{分别为1}},//about

但是,如果您真的想要控制它,那么您可以替换www中间件并将其替换为您自己的中间件。阅读关于middlewaresserve-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会将其提供。