2017-01-27 8 views
1

제목에서 알 수 있듯이, Vue.js 단일 페이지 응용 프로그램을 FeathersJS의 public/index.html에서 제공하고 있습니다. vue-router의 HTML5 히스토리 모드를 사용하고 있으므로 요청한 프론트 엔드 위치를 /index.html으로 재 작성하려면 connect-history-api-fallback과 같은 미들웨어를 사용해야합니다.FeathersJS의 connect-history-api-fallback 미들웨어를 사용하여 Vue.js 서비스 제공

최대 /index.html 수정 해 notFound는 404 응답을 제공 요청이 아무것도를 다시 작성하지 도착 시간에 의해, 그래서 깃털, 다른 모든 전에 정적 파일을 제공하기 때문에 작동하지 않습니다 단지 app.use(notFound()); 전에 src/middleware이 미들웨어를 설정.

.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); 

내 질문은 다음과 같다?

답변

2

게시 한 구성으로는 보안에 대한 우려가 없습니다.

serveStatic 미들웨어를 SSR 미들웨어로 교체하려는 경우 SSR 미들웨어보다 먼저 CORS 헤더를 삭제하여 교차 사이트 요청 (쿠키를 사용하여 CSRF 공격)을 통해 데이터가 누출되지 않도록해야합니다.