我在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;
}
}
当我在控制台中检查是否已收集静态管理文件时
admin css images js
cd管理员
css fonts img js
编辑
让我们玩URL
在这里,我尝试在我的应用程序的公开部分显示我的CSS。
my-domain.name/static/css/stylesheet.css
文件提供了很好的服务
现在我正在尝试显示Django admin应用css
my-domain.name/static/admin/css/dashboard.css
页面返回404代码
我不知道这是否与我的问题有关,但我修改了管理员的网址。
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目录。