Django/Nginx:不提供静态文件
Django/Nginx: statics files are not served
我尝试使用 Nginx 在远程服务器上部署我的 Django 项目,但我的文件没有提供。
我想我的路径不正确,但真的不知道为什么...
python3 manage.py collectstatic 获取 intensecov_static 文件夹中的所有文件。
/home/zebra/
- intensecov_app
- intensecov
- coverage (project)
- manage.py
- static
- ...
- intensecov_static
- css
- style.css
- images
- ...
settings.py
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'static'),
os.path.join(BASE_DIR,'randomization_management/static'),
os.path.join(BASE_DIR,'randomization_settings/static'),
os.path.join(BASE_DIR,'randomization/static'),
)
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = '/home/zebra/intensecov_static'
/etc/nginx/sites-available/intensecov
server {
listen 80;
server_name 192.168.80.9;
root /home/zebra/intensecov_app;
location /static {
alias /home/zebra/intensecov_static;
}
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://127.0.0.1:8000;
break;
}
}
}
STATIC_ROOT 是当您 运行 命令 python manage.py collectstatic
时收集所有静态文件的地方
STATIC_URL 指向 STATIC_ROOT.
参考这里https://docs.djangoproject.com/en/3.0/ref/settings/#std:setting-STATIC_ROOT
更改 nginx 文件中的位置应该可以解决问题。
希望你的 nginx.conf 你声明:
location /static {
alias /home/zebra/intensecov_static;
}
试试这个:
location /static {
alias /home/zebra/intensecov_static/;
}
nginx 似乎需要尾随 /
才能使文件夹正常工作。
或者至少在删除尾随 /
时,静态文件的服务中断了。
我尝试使用 Nginx 在远程服务器上部署我的 Django 项目,但我的文件没有提供。
我想我的路径不正确,但真的不知道为什么...
python3 manage.py collectstatic 获取 intensecov_static 文件夹中的所有文件。
/home/zebra/
- intensecov_app
- intensecov
- coverage (project)
- manage.py
- static
- ...
- intensecov_static
- css
- style.css
- images
- ...
settings.py
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'static'),
os.path.join(BASE_DIR,'randomization_management/static'),
os.path.join(BASE_DIR,'randomization_settings/static'),
os.path.join(BASE_DIR,'randomization/static'),
)
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = '/home/zebra/intensecov_static'
/etc/nginx/sites-available/intensecov
server {
listen 80;
server_name 192.168.80.9;
root /home/zebra/intensecov_app;
location /static {
alias /home/zebra/intensecov_static;
}
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://127.0.0.1:8000;
break;
}
}
}
STATIC_ROOT 是当您 运行 命令 python manage.py collectstatic
时收集所有静态文件的地方
STATIC_URL 指向 STATIC_ROOT.
参考这里https://docs.djangoproject.com/en/3.0/ref/settings/#std:setting-STATIC_ROOT
更改 nginx 文件中的位置应该可以解决问题。
希望你的 nginx.conf 你声明:
location /static {
alias /home/zebra/intensecov_static;
}
试试这个:
location /static {
alias /home/zebra/intensecov_static/;
}
nginx 似乎需要尾随 /
才能使文件夹正常工作。
或者至少在删除尾随 /
时,静态文件的服务中断了。