我正在尝试使用nginx为我的Django应用程序提供静态文件。
我正在关注他们提出以下nginx配置文件的this guide:
server {
server_name yourdomainorip.com;
access_log off;
location /static/ {
alias /opt/myenv/static/;
}
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
}
}
在我的settings.py中,我有以下声明:
STATIC_ROOT = os.path.join(os.path.dirname(__file__), 'static/')
STATIC_URL = '/static/'
STATIC_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
我能够在表格的网址上看到静态文件:
http://x.x.x.x/static/admin/img/icon_searchbox.png
但是,当尝试使用{%static%}标记在模板中引用静态文件时,我会获得以下格式的网址:
http://x.x.x.x:8001/static/admin/img/icon_searchbox.png
不指向文件,而是由Django执行。
有关如何解决此问题的任何想法?
答案 0 :(得分:1)
试试这个:
STATIC_URL = '/static/'
缺少第一个"/"
答案 1 :(得分:0)
尝试使用nginx的配置:
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}