Python 为什么我的Django管理员没有使用css加载?
我在Django中开发了一个web应用程序并进行了部署,然后我发现管理页面没有加载CSS。我在本地服务器中使用css获取管理页面,但在部署它时没有。 即使使用后Python 为什么我的Django管理员没有使用css加载?,python,css,django,django-admin,Python,Css,Django,Django Admin,我在Django中开发了一个web应用程序并进行了部署,然后我发现管理页面没有加载CSS。我在本地服务器中使用css获取管理页面,但在部署它时没有。 即使使用后 python manage.py collectstatic 它不是用css加载的 这是我的settings.py代码 从pathlib导入路径 导入操作系统 BASE_DIR=Path(_file__).resolve(strict=True).parent.parent 以下是静态文件链接部分: STATIC_URL = '/s
python manage.py collectstatic
它不是用css加载的
这是我的settings.py代码
从pathlib导入路径
导入操作系统
BASE_DIR=Path(_file__).resolve(strict=True).parent.parent
以下是静态文件链接部分:
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')
我无法理解为什么即使在上面的代码之后它也没有链接css部分
Django版本:3.1
Python版本:3.8.3
有人能帮我吗
谢谢Django在生产环境中不提供静态文件,您应该使用其他方法来使用apache2或nginx提供文件。如果您很好或者知道一些docker容器,这里有一个教程,解释如何部署Django 请在此查看django文件
请查看这篇文章,了解不带docker容器的apache2安装看起来不错。您可能需要在生产环境中再次运行
collectstatic
。只需在此处执行一个技巧。运行collectstatic命令后,您将在staticfiles文件夹中获得管理员静态信息。只需将其剪切并粘贴到静态文件夹中,我不知道为什么Django在生产中不支持admin static。如果有人知道这一点,欢迎回答将此代码添加到您的设置中。py
DEBUG = False
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
运行此命令后:
python manage.py collectstatic --noinput
并使用nginx或
并将staticfiles路径添加到您的webservice配置中
对于nginx这样的东西
location /static/ {
alias /home/{{your project path }}/static/;
}
您没有提到您试图在哪台服务器上部署应用程序如果您在Heroku上部署应用程序,那么您需要安装whitenoise,我已经解释过了,但是如果您使用的是任何其他服务器,那么您可以回答这个问题,如果您在生产环境中,您必须运行:
python manage.py collectstatic--noinput
但是您还必须通过web服务器提供静态文件。最简单的方法是使用WhiteNoise:
这将与Nginx、Heroku等一起使用。因此,这是一个非常灵活的解决方案。在settings.py中尝试以下操作:
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
STATIC_ROOT = BASE_DIR / 'staic'
MEDIA_ROOT = BASE_DIR / 'media'
STATICFILES_DIRS = [BASE_DIR / 'static']
您好,非常感谢您提供的解决方案,我会尽快为您更新Apache的这项工作吗?Bcoz正在ApacheYes上的AWS中部署它,请查看
Antonio Cangiano的这篇文章,但仍然没有更改,是否还有其他解决方案?现在使用nginx和docker您可以附加开发人员工具网络选项卡的屏幕截图吗?
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
STATIC_ROOT = BASE_DIR / 'staic'
MEDIA_ROOT = BASE_DIR / 'media'
STATICFILES_DIRS = [BASE_DIR / 'static']