nginx: 모든 요청을 단일 html 페이지로 보냅니다.
nginx를 사용하여 url은 보존하고 싶지만, 실제로는 무슨 일이 있어도 같은 페이지를 로드하고 싶습니다.나는 url을 함께 사용할 것입니다.History.getState()
javascript 앱에서 요청을 라우팅합니다.간단한 일을 해야 할 것 같은데요?
location / {
rewrite (.*) base.html break;
}
작동하지만 URL을 리디렉션합니까?url이 필요해서 항상 같은 페이지를 사용하고 싶습니다.
이렇게 하면 충분할 것 같습니다.
location / {
try_files /base.html =404;
}
그냥 사용하는 것try_files
로그에 재작성 또는 내부 리디렉션 주기 오류가 발생했습니다.
Nginx 문서에는 다음과 같은 몇 가지 추가 세부 사항이 있습니다.
http://nginx.org/en/docs/http/ngx_http_core_module.html#try_files
그래서 저는 다음을 사용하게 되었습니다.
root /var/www/mysite;
location / {
try_files $uri /base.html;
}
location = /base.html {
expires 30s;
}
당신의 원래 재작성은 거의 효과가 있을 겁니다.왜 방향이 바뀌는지는 잘 모르겠지만, 당신이 정말 원하는 건
rewrite ^ /base.html break;
당신은 그것을 한 장소에 혹은 직접 서버에 둘 수 있을 것입니다.
효과가 있었습니다.
location / {
try_files $uri $uri/ /base.html;
}
효과가 있었습니다.
location / {
alias /path/to/my/indexfile/;
try_files $uri /index.html;
}
이를 통해 자바스크립트 한 페이지 앱의 캐치올 URL을 만들 수 있었습니다.CSS, 폰트, 자바스크립트와 같은 모든 정적인 파일들은 다음과 같습니다.npm run build
다음과 같은 디렉토리에 있으면 찾을 수 있습니다.index.html
.
정적 파일이 어떤 이유에서인지 다른 디렉토리에 있으면 다음과 같은 것도 필요합니다.
# Static pages generated by "npm run build"
location ~ ^/css/|^/fonts/|^/semantic/|^/static/ {
alias /path/to/my/staticfiles/;
}
올바른 방법은 다음과 같습니다.
location / {
rewrite (.*) base.html last;
}
사용.last
nginx가 새로운 적합한 것을 찾게 할 것입니다.location
다시 쓰기 결과에 따라 차단합니다.
try_files
또한 이 문제에 대해 완벽하게 유효한 접근법입니다.
언급URL : https://stackoverflow.com/questions/7027636/nginx-send-all-requests-to-a-single-html-page
'programing' 카테고리의 다른 글
오류: "선택기가 구현되지 않음" (0) | 2023.10.08 |
---|---|
C 또는 C++에 경량 멀티파트/폼 데이터 파서가 있습니까? (0) | 2023.10.03 |
인터페이스 오류:Oracle 환경 핸들을 가져올 수 없습니다. ORACLE_HOME이 올바르고 SQL*Plus가 연결됩니다. (0) | 2023.10.03 |
스프링 구성 디버깅 (0) | 2023.10.03 |
구문 오류 또는 액세스 위반: 1059 식별자 이름이 너무 깁니다. (0) | 2023.10.03 |