Как видно из названия, я обслуживаю одностраничное приложение Vue.js от public/index.html
в FeathersJS. Поскольку я использую режим истории VUE-маршрутизатора HTML5, мне нужно использовать промежуточное программное обеспечение, например connect-history-api-fallback
, чтобы переписать запрошенное расположение интерфейса на /index.html
.Использование промежуточного программного обеспечения connect-history-api-fallback в FeathersJS для обслуживания Vue.js SPA
Настройка этого промежуточное программное обеспечение в src/middleware
непосредственно перед app.use(notFound());
не работает, поскольку Перья обслуживают статические файлы, прежде чем все остальное, так что к тому времени, когда запрос не получает переписан ничего подхватывает /index.html
и notFound
служит ответ 404.
Конфигурирование его до .use('/', serveStatic(app.get('public')))
внутри src/app.js
также проблематично, поскольку он переписывает каждый запрос на обслуживание до /index.html
, что делает вызовы API недоступными.
я в конечном итоге перемещение serveStatic
промежуточное программное обеспечение после .configure(services)
и размещения 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);
Мой вопрос заключается в следующем: Есть ли производительность или безопасность недостатки такого подхода?