제목에서 알 수 있듯이, 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);
내 질문은 다음과 같다?