2017-12-29 6 views
0

초보자가 질문 할 수 있으므로 미리 사과드립니다. 그러나 여기 상황 :정적 리소스 요청을 NGINX로 서브 폴더로 다시 작성

배경

나는 이런 식으로 뭔가 보이는 정적 번들이 있습니다 index.html 내부

index.html 
assets/ 
├── image1.png 
└── image2.png 

, 나는 이미지 태그를 다음과 같이 :

<img src="/assets/image1.png" /> 

그래서 로컬 서버에서 8000의 정적 서버를 호스트하고 localhost:8000으로 이동하면 브라우저가 0123을 요청합니다그리고 모든 것이 잘 동작합니다.

내 클라이언트가 실제로 정적 번들 http://example.com/portal을 가리의 nginx를 사용

문제. 브라우저에 http://example.com/portal을 입력하면 index.html 페이지가 표시됩니다.

그는 모든 정적 자산에 /portal이라는 접두어를 붙이면 작동하지 않는다고 알려줍니다. 그건 내 img 태그 대신 위의처럼 볼 필요가 의미 : 나는 그렇게하지 않으면

<img src="/portal/assets/image1.png" /> 

, 그는 브라우저 대신 http://example.com/portal/assets/image1.pnghttp://example.com/assets/image1.png를 요청 끝 말한다.

이 문제를 해결하기 위해 내가 사용하고있는 프레임 워크를 왜곡해야하기 때문에이 작업이 나에게 도움이됩니다. 그것은 dev와 build를위한 몇 가지 추가 스크립트를 작성해야한다는 것을 의미합니다. 이것은 짜증나게하고 repo를 오염시킵니다.

NGINX 구성에 문제가 있습니까? 아니면 실제로 모든 링크에 접두사 /portal을 추가해야합니까, 아니면 NGINX 구성에 문제가 있습니까?

나는 그의 NGINX 구성에 액세스 할 수 없으며 NGINX에 많은 경험이 없습니다.

답변

0

용액을 기본 태그

https://www.w3schools.com/tags/tag_base.asp에게 사용하기 간단하다.

당신은 머리 태그

<head> 
<base href="/portal/"> 
</head> 

index.html 아래 변경하고 대신 절대 상대 링크로 당신의 연결을 변경합니다. 그래서

아래
<img src="/assets/image1.png" /> 

<img src="assets/image1.png" /> 

로 변경해야 그리고 지금은 Nginx에

/portal에 정적 파일을 배포 할 수 있습니다
관련 문제