我刚刚在Ubunto服务器上部署了我的django网站。但它不会加载任何静态文件。
settings.py:
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),]
STATIC_ROOT = 'staticfiles'
nginx / sites-available配置:
server {
server_name 138.197.172.33;
access_log off;
location /staticfiles/ {
root staticfiles;
}
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"';
}
}
错误:
...
[14/May/2018 05:28:28] "GET /static/vendors/underscore/underscore.js
HTTP/1.1" 404 113
[2018-05-14 05:28:29,252] base: WARNING - Not Found:
/static/vendors/bootstrap-notify-simple-wrapper/bootstrap-notify-
simple-wrapper.min.js
[14/May/2018 05:28:29] "GET /static/vendors/bootstrap-notify-simple-
wrapper/bootstrap-notify-simple-wrapper.min.js HTTP/1.1" 404 159
[2018-05-14 05:28:29,690] base: WARNING - Not Found:
/static/js/custom.js
[14/May/2018 05:28:29] "GET /static/js/custom.js HTTP/1.1" 404 93
[2018-05-14 05:28:30,236] base: WARNING - Not Found:
/static/js/converter.js
[14/May/2018 05:28:30] "GET /static/js/converter.js HTTP/1.1" 404 96
...
staticfiles文件夹包括:
admin ajaximage css datatable dm2bn fonts images js static
tinymce vendors
答案 0 :(得分:0)
查看错误日志,链接指向/static/
:
[14 / May / 2018 05:28:28]“GET / static / 供应商/下划线/下划线.js HTTP / 1.1“404 113
在您的配置中,您已将location
设置为/staticfiles
,但您的django配置称该网址为/static
。
因此,location
应该是/static/
,而不是/staticfiles/
。
location
是URL,root是staticfiles
目录的完整路径。
答案 1 :(得分:0)
您应该更改nginx
配置,例如
location /static/ {
alias /path/to/staticfiles;
}
您应该在nginx配置中给出绝对路径。
答案 2 :(得分:0)
确保所有静态文件都存在于项目目录的路径/static
中。
在服务器上部署应用程序后,请不要忘记运行:
python manage.py collectstatic --link
--link
将在目录/staticfiles
中创建指向每个文件的符号链接。
Nginx配置应为:
location /static/ {
alias /path/to/staticfiles;
}