2016-11-07 99 views
1

我想在我的风帆js应用程序中完全分开客户端和服务器端。风帆js路由静态html

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

回答

0

您可以将Html文件放置在资产文件夹中。 Sails将为请求的url提供html文件。

说,你放置一个HTML文件about.htmlassets文件夹中,Sails将在请求url <your-domain>/about.html时提供。

+0

调用当它不工作/对,而HTML推广。 – user3712353

+0

@ user3712353你只需要把html文件放在'assets/about/index.html' – MjZac

0

如果你看看那帆中间件使用

配置/ 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.htmlassets/about/index.htmlassets/foo/index.html将在服役/,​​,并分别/foo。但是,如果你真的想控制这个,那么你可以替换www中间件,并用你自己的中间件代替它。请阅读风帆的文件middlewaresserve-static's documentation

你可以看看关于这一主题类似的问题:Any way to serve static html files from express without the extension?