正如标题所示,我在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
我的问题如下:此方法是否有任何性能或安全方面的缺陷?
答案 0 :(得分:2)
根据您发布的配置,实际上没有任何安全问题。
如果您要用SSR中间件替换serveStatic
中间件,您可能希望在SSR中间件之前删除CORS标头,以避免通过跨站点请求泄漏数据(使用cookie进行CSRF“攻击”)。