nginx에서 Windows 파일 경로를 지정하는 방법 이 구성과 동등한 창을 지정하고 싶습니다. location /static/

nginx의 공식 Windows 버전을 사용하고 있습니다. 이 구성과 동등한 창을 지정하고 싶습니다.

location /static/ {
   alias /home/user/staticfiles/;
}

별칭 지시문에서 Windows 파일 경로를 어떻게 지정합니까? 이것도 가능합니까?



답변

답변이 최신이 아니어야합니다. 슬래시와 함께 nginx 1.3.8 절대 경로를 사용하면 작동합니다. 백 슬래시는 작동하는 것 같지만 두 배가되어야합니다. 그렇지 않은 경우 후행과 같은 일부 \"문자가 그대로 사용됩니다.

location /static/ {
    # alias "C:\\foo\\bar\\...\\static\\";
    alias "C:/foo/bar/.../static/";
    expires 90d;
}

따옴표는 필요하지 않지만 공백이 포함 된 경우 좋은 생각처럼 보입니다.

내가 주목 한 또 다른 것은 슬래시로 끝나거나 끝나지 않는 URL과 별칭 경로를 일치시키는 것이 중요하다는 것입니다.


답변

다음과 같은 절대 경로를 지정하려고하면 …

location / {
    alias C:\Users\SomeUser\mysite\static;
}

… 그 위치에서 파일을 요청하면 C : \ nginx \ logs \ error.log에 다음과 같은 오류가 표시 될 것입니다.

2011/11/11 12:53:16 [error] 6236#0: *1 open() "/cygdrive/c/nginx/C:\Users\SomeUser\mysite\static\somefile.css

Windows에서 nginx를 구성 할 때 C : \ nginx 디렉토리에 상대적인 경로를 지정하십시오. 이것은 작동합니다 :

location / {
    alias ../Users/SomeUser/mysite/static;
}

개인적으로, 나는 nginx 구성이 Windows와 Linux 사이에서 예상보다 조금 이식 가능하기 때문에 이것을 배우게되어 기뻤습니다. Linux 구성 파일을 Windows에서 작동하는 파일로 바꾸려면 기본적으로 다음과 같습니다.

s|/home/myname/|../Users/Myname|

답변

당신은 이것을 시도 할 수 있습니다 :

  1. 정적 파일을 nginx / html / staticfiles로 복사
  2. nginx.conf로 설정

    위치 / static / {별명 / nginx / html / staticfiles /; }


답변

내 Windows 시스템에서 별칭이 전혀 작동하지 않는 것 같습니다. 나는 타이핑을 시도했다

alias "c:"

그러나 이것조차도 작동하지 않습니다. 그리고 nginx가 구성 파일을 다시로드 한 후 위치를 출력하는 방법을 찾을 수 없습니다. 따라서 nginx의 창에서 별칭을 사용하지 마십시오.


답변

Windows의 Nginx의 경우이 방법을 사용해야합니다.

위치 / foo {

루트 C : // pathtoyourfile / folder1 / folder2;

} 여기서 foo는 folder2 내의 실제 폴더입니다.