nginx 不提供 Django 管理静态文件
nginx does not serve the Django admin statics file
我在 DigitalOcean 上有一个正在生产中的 django 项目。
静态文件可以很好地用于应用程序本身,但不适用于管理部分
settings.py
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
/etc/nginx/sites-available/my-project
server {
...
location /static/ {
root /home/username/my-project;
}
location /media {
autoindex on;
alias /home/username/my-project/media/;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
当我检查控制台是否收集了静态管理文件时
- cd my-project/staticfiles
- ls
admin css images js
cd 管理员
css fonts img js
编辑
让我们玩转 URL
在这里,我尝试在我的应用程序的 public 部分显示我的 css。
my-domain.name/static/css/stylesheet.css
文件送达良好
现在我正在尝试显示 Django 管理应用程序 css
my-domain.name/static/admin/css/dashboard.css
页面returns一个404代码
我不知道这是否与我的问题有关,但我修改了管理员的url。
path('ez4y5ebGgTkfanLYHdjbX33pQMyX/', admin.site.urls), # the admin url is a long sequence of numeric alpha characters
你 运行 collectstatic 了吗?
django.contrib.staticfiles
提供了一个方便的管理命令,用于将静态文件收集到一个目录中,以便您可以轻松地在生产环境中使用它们。
改变你的STATIC_ROOT
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
和运行收集静态
python manage.py collectstatic
这会将静态文件夹中的所有文件复制到 STATIC_ROOT 目录中。
我在 DigitalOcean 上有一个正在生产中的 django 项目。 静态文件可以很好地用于应用程序本身,但不适用于管理部分
settings.py
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
/etc/nginx/sites-available/my-project
server {
...
location /static/ {
root /home/username/my-project;
}
location /media {
autoindex on;
alias /home/username/my-project/media/;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
当我检查控制台是否收集了静态管理文件时
- cd my-project/staticfiles
- ls
admin css images js
cd 管理员
css fonts img js
编辑
让我们玩转 URL
在这里,我尝试在我的应用程序的 public 部分显示我的 css。
my-domain.name/static/css/stylesheet.css
文件送达良好
现在我正在尝试显示 Django 管理应用程序 css
my-domain.name/static/admin/css/dashboard.css
页面returns一个404代码
我不知道这是否与我的问题有关,但我修改了管理员的url。
path('ez4y5ebGgTkfanLYHdjbX33pQMyX/', admin.site.urls), # the admin url is a long sequence of numeric alpha characters
你 运行 collectstatic 了吗?
django.contrib.staticfiles
提供了一个方便的管理命令,用于将静态文件收集到一个目录中,以便您可以轻松地在生产环境中使用它们。
改变你的STATIC_ROOT
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
和运行收集静态
python manage.py collectstatic
这会将静态文件夹中的所有文件复制到 STATIC_ROOT 目录中。