在FeathersJS中使用connect-history-api-fallback中间件来提供服务Vue.js SPA

时间:2017-01-27 03:56:21

标签: node.js express single-page-application feathersjs

正如标题所示,我在FeathersJS中从public/index.html提供Vue.js单页应用程序。由于我使用的是vue-router的HTML5历史记录模式,因此我必须使用connect-history-api-fallback这样的中间件,以便将请求的前端位置重写为/index.html

src/middleware之前app.use(notFound());设置此中间件并不起作用,因为Feathers在其他所有内容之前提供静态文件,所以当请求被重写时,没有任何内容被{{1} }和/index.html提供404响应。

notFound内部.use('/', serveStatic(app.get('public')))之前配置它也会产生问题,因为它会将每个服务请求重写为src/app.js,从而使API调用无法访问。

我最后在/index.html之后移动了serveStatic中间件,并将.configure(services)放在上方,如下所示:

connect-history-api-fallback

我的问题如下:此方法是否有任何性能或安全方面的缺陷?

1 个答案:

答案 0 :(得分:2)

根据您发布的配置,实际上没有任何安全问题。

如果您要用SSR中间件替换serveStatic中间件,您可能希望在SSR中间件之前删除CORS标头,以避免通过跨站点请求泄漏数据(使用cookie进行CSRF“攻击”)。