2017-01-27 11 views
1

Как видно из названия, я обслуживаю одностраничное приложение 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); 

Мой вопрос заключается в следующем: Есть ли производительность или безопасность недостатки такого подхода?

ответ

2

С размещенной вами конфигурацией на самом деле нет проблем с безопасностью.

Если вы заменили промежуточное ПО промежуточным программным обеспечением SSR, вы хотели бы удалить заголовки CORS перед промежуточным программным обеспечением SSR, чтобы избежать утечки данных через запросы на кросс-сайты (CSRF «атакует» с помощью файлов cookie).