Pra*_*ddy 8 css python django django-admin
我在 Django 中开发了一个 Web 应用程序并部署了它,然后我发现管理页面没有加载 CSS。我在本地服务器中使用 css 获取管理页面,但在部署它时却没有。
即使使用后
python manage.py collectstatic
它也不会加载 css。
这是我的settings.py代码
from pathlib import Path
import os
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent
Run Code Online (Sandbox Code Playgroud)
这是静态文件链接部分:
STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
STATIC_ROOT=os.path.join(BASE_DIR,'staticfiles')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'first_app/media')
Run Code Online (Sandbox Code Playgroud)
即使在上面的代码之后我也无法弄清楚为什么它没有链接 css 部分
Django 版本:3.1 Python 版本:3.8.3
请有人帮我解决这个问题谢谢
如果您在生产中,则必须运行:
python manage.py collectstatic --noinput
但您还必须通过 Web 服务器提供静态文件。最简单的方法是使用 WhiteNoise:http://whitenoise.evans.io/en/stable/
这将与 Nginx、Heroku 等一起使用。所以这是一个非常灵活的解决方案。
Django 不在生产中提供静态文件,您应该使用其他方法通过 apache2 或 nginx 来提供文件。如果您擅长或了解一些 docker 容器,这里有一个教程,解释如何部署 Django https://testdriven.io/blog/dockerizing-django-with-postgres-gunicorn-and-nginx/
upstream hello_django {
server web:8000;
}
server {
listen 80;
location / {
proxy_pass http://hello_django;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
location /staticfiles/ {
alias /home/app/web/staticfiles/;
}
}
Run Code Online (Sandbox Code Playgroud)
请在此处查看 django 文档https://docs.djangoproject.com/en/3.1/howto/static-files/deployment/
请检查这篇文章,了解没有 docker 容器的 apache2 https://programmingzen.com/serving-django-static-files-through-apache/
归档时间: |
|
查看次数: |
11405 次 |
最近记录: |