2012-03-17 6 views
1

그래서, 정적 파일을로드 (및 액세스 할 때 금지 (403)를 제공)하지 않는의 nginx/JS 등

location ~* \.(js|css|png|jpg|jpeg|gif|ico|bmp|ttf|tof|svg|swf)$ { 
     expires max; 
     access_log off; 
     error_log off; 
    } 

를 사용하여 사용자에 대한 정적 파일을 캐시 할 때 내 정적 파일없이 사이트가로드됩니다. 내가 그 부분을 주석 처리 할 때 모든 것이 제대로 작동합니다.

왜 이런 일이 일어 났는지 설명 할 수 있습니까?

+0

귀하의 질문이 명확하지 않다. 어쩌면 전체 설정에 대한 링크를 게시 할 수 있습니다. 다른 점에서 웹에서 발견 된 정적 파일의 긴 목록을 가진이 Nginx 설정은 거의 2 년 동안 구식이되었습니다. – Dayo

+0

무슨 일이 일어나는지는 정규 표현식을 통해 그 파일을 대상으로 할 때마다 403 Foridden 오류가 발생한다는 것입니다. 나는 단지 \ .css $로 쿼리를 바꿨고 이미지는 이제 괜찮습니다, 단지 css가 403 에러를줍니다. – Ayub

+0

더 많은 테스트를 마친 후에도 정규 표현식이 필요하지 않습니다. 저는 메인 워드 프레스 CSS 파일의 전체 경로를 만들었지 만 여전히 403ed입니다. 내가 0777 chmod'd 및 nginx 소유자로 사용하는 그룹 www - 데이터를 만들었습니다. – Ayub

답변

1

외부 구문 (예 : 서버 블록)에 루트 지시어를 지정하지 않았기 때문일 수 있습니다. 당신이 당신의 정적 폴더의 경로로 서버 블록 또는 위치 블록에 루트 지시문을 추가하면

은 고정됩니다

server{ 
    . 
    . 
    . 
    root /path/to/static/folder; 

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|bmp|ttf|tof|svg|swf)$ { 

     # or add a root directive here 
     root /path/to/static/folder; 

     expires max; 
     access_log off; 
     error_log off; 
    } 
}