2017-10-15 4 views
1

주 응용 프로그램에서 상속받은 여러 각도 응용 프로그램을 배포하고 싶습니다. myapp.com (디렉토리 을/etc/지역/nginx를/HTML/MyApp를)nginx를 동일한 서버에 여러 위치로 구성하십시오.

다른 사람 애플리케이션은 다음 주소에 있어야합니다 : MyApp를

주요 응용 프로그램은 주소입니다. com/app_n (디렉토리 /etc/local/nginx/html/app_n)

어떻게 구성 할 수 있습니까?

나는 다음과 같은 구성을 시도했지만 작동하지 않았다 :

server { 
    listen  80; 
    server_name myapp.com; 

    location /app_1 { 
     alias /usr/local/nginx/html/app_1/dist; 
    } 

    location/{ 
     root html/myapp/dist; 
     autoindex on; 
     include /etc/nginx/mime.types; 
     try_files $uri $uri/ /index.html =404; 
    } 
} 

URL이 myapp.com/app_1이고, 각도는 "페이지를 찾을 수 없습니다"고 말했다. 실제로 에 속하는, 내가 검사

<script src="main.bundle.js"> 

는, 내가 main.bundle.jsAPP_1에서 사용하는 것을 발견하십시오 APP_1index.html을에서 스크립트가 myapp. 그 이유는 서버 이름이 myapp.com이기 때문입니다.

도움 주셔서 감사합니다.

+0

'/ main.bundle.js' (앞에'/'가 붙어 있습니까?)을 사용해 보셨습니까? –

+0

문제는 스크립트 태그가 각도로 자동 생성된다는 것입니다. 그리고 난 각도에서 모든 코드를 수정하고 싶지 않아 nginx 구성 파일 만. 그게 가능하다고 생각하니? 감사 ! –

+0

@RichardSmith "/main.bundle.js"를 사용하려고했지만 작동하지 않았습니다. 나는 그것을 만들기 위해 "/app_1/main.bundle.js"를 넣어야 만 하겠지만, 나는 약 100 개의 응용 프로그램을 가지고있다. –

답변

0

경로 상대 URI를 사용하여 리소스 파일에 액세스하고 있습니다. 브라우저는 현재 페이지의 URL 중 마지막으로 /을 찾아서 절대 경로를 만듭니다.

URL http://myapp.com/app_1을 사용하여 <script src="main.bundle.js">이 포함 된 페이지에 액세스하면 브라우저에서 http://myapp.com/main.bundle.js의 리소스 파일을 찾습니다.

당신이 경로 상대 URI를 사용하는 경우, 당신은 올바른 위치에 최종 /를 배치해야합니다 그래서 모두 : http://myapp.com/app_1/http://myapp.com/app_1/index.html 브라우저가 http://myapp.com/app_1/main.bundle.js에서 리소스 파일을 찾아 원인이됩니다.

관련 문제