正如標題所示,我正在使用FeathersJS中的public/index.html
的Vue.js單頁應用程序。由於我使用vue-router的HTML5歷史記錄模式,爲了將請求的前端位置重寫爲/index.html
,我必須使用中間件connect-history-api-fallback
。在FeathersJS中使用connect-history-api-fallback中間件來提供Vue.js SPA
設置此中間件src/middleware
只是app.use(notFound());
之前不起作用,因爲羽毛高於一切服務於靜態文件,所以該請求被改寫什麼時候拿起/index.html
和notFound
供應404響應。
在.use('/', serveStatic(app.get('public')))
之前在src/app.js
之內配置它也有問題,因爲它會將每個服務請求重寫爲/index.html
,從而導致API調用不可用。
我結束了.configure(services)
後移動serveStatic
中間件,並把connect-history-api-fallback
正上方,像這樣:
app.use(compress())
.options('*', cors())
.use(cors())
// favicon and serveStatic used to be here
.use(bodyParser.json())
.use(bodyParser.urlencoded({ extended: true }))
.configure(hooks())
.configure(rest())
.configure(socketio())
.configure(services)
.use(require('connect-history-api-fallback')())
// now they are down here
.use(favicon(path.join(app.get('public'), 'favicon.ico')))
.use('/', serveStatic(app.get('public')))
.configure(middleware);
我的問題是:是否有任何性能或安全性的缺點,以這種方式?