이유를 찾을 수없는 매우 이상한 문제가 발생했습니다. 내 애플 리케이션 서버로 uWSGI와 django 애플 리케이션을 가지고 우리의 리버스 프록시로 Nginx.주어진 경로와 다른 경로를 찾고있는 Nginx Django 정적 파일 URL 설정
PROJECT_DIR = "/home/ubuntu/src/myapp"
MEDIA_ROOT = os.path.join(PROJECT_DIR, 'media')
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(PROJECT_DIR, 'staticfiles')
STATIC_URL = '/staticfiles/'
STATICFILES_DIRS = (
os.path.join(PROJECT_DIR, 'static'),
)
과 무엇의 nginx의 conf에서이 점은 다음과 같습니다 : 장고의 정적 URL에 대한 나의 초기 설정은 다음과 같습니다
server {
listen 80;
server_name stg1.myapp.com
client_max_body_size 5G; # adjust to taste
access_log /var/log/nginx/myapp-access.log combined;
error_log /var/log/nginx/myapp-error.log;
location /media {
alias /home/ubuntu/src/myapp/media/; # your Django project's media files - amend as required
}
location /static {
alias /home/ubuntu/src/myapp/staticfiles/;
}
location/{
uwsgi_pass django;
uwsgi_read_timeout 600s;
uwsgi_buffering off;
uwsgi_send_timeout 600s;
proxy_read_timeout 600s;
include /home/ubuntu/src/myapp/uwsgi_params;
}
}
지금, 나는 내가이었다 서버에 액세스하려고 할 때 정적 파일이 오류가 : 주어진 STATIC_ROOT
위치에
2016/12/13 20:33:03 [error] 30533#0: *194 open() "/home/ubuntu/src/myapp/staticfiles/files/css/base.css" failed (2: No such file or directory), client: 172.31.4.166, server: stg.myapp.com, request: "GET /staticfiles/css/base.css HTTP/1.1", host: "stg.myapp.com", referrer: "http://stg.myapp.com/profile/user1"
Collectstatic
복사 된 모든 파일. 실제로 검색된 경로는 STATIC_ROOT/files
입니다.
STATIC_ROOT = os.path.join(PROJECT_DIR, 'staticfiles/files')
에 STATIC_ROOT
을 변경합니다. 나는 아직도 디렉토리 staticfiles/files
이 찾고 있었고 nginx conf에 주어진대로 staticfiles
디렉토리가 아니라는 것을 알 수 없다. 가능한 이유를 어디에서 찾아야합니까?
EDIT - 변경이있을 때마다 nginx 서비스를 다시 시작했습니다. 그래서 아무런 문제도 없습니다.
나는 많은 시간을 nginx conf를 변경해 보았습니다. 따라서 conf를 다시로드해도 아무런 문제가 없습니다. 또한 정적 경로를 'actual_path/files'로 변경하지 않았습니다. –
@Nihal Sharma''/home/ubuntu/src/myapp/staticfiles/files/css/base.css ''에 접근하려면 STATIC_ROOT 디렉토리를보고 파일이 있는지 알아야한다. files/css/base.css)가 종료됩니다. – shady
@ Nihal Sharma STATIC_URL과 아무런 관련이 없습니다. 로컬 환경에서 STATIC_URL = '/ staticfiles /'와 동일한 설정이 있습니다. 여전히 Nginx는 STATIC_ROOT에 의해 지정된 파일을 찾을 수 있습니다. – shady