为什么我的Djangopipe理网站没有CSS样式

我使用django开发版本做一个djangopipe理站点

但它没有CSS风格:

替代文字

我能做什么 。

谢谢

Django自己不提供静态文件。 你必须告诉它在哪里的文件。

settings.py中的ADMIN_MEDIA_PREFIX会将Django指向正确的位置。

由于您使用的是开发版本,因此您需要针对静态文件的开发指定文档 。 亚当的链接将引导你到1.2版本。

设置完STATIC_ROOTSTATIC_URL ,可能需要运行

 python manage.py collectstatic 

现在不build议使用STATIC_URL而是使用STATIC_URL 。 在settings.py中设置STATIC_URL = '/static/'应该可以完成这个工作。 尝试:

 import os.path import sys PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__)) 

接着:

 STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static') STATIC_URL = '/static/' 

适用于Django 1.4 pre-alpha SVN-16920。

我遇到了这个问题以及Django书籍教程。 在第5章|安装模型时,本书在引用默认INSTALLED_APPS时指出:“通过在其前面放置一个哈希字符(#),临时注释掉所有这六个string。 http://www.djangobook.com/en/2.0/chapter05.html

然后,在第6章中,本书告诉读者取消注释这6行中的4行 – “请注意,我们在第5章中注释了这四个INSTALLED_APPS条目。现在取消注释。

但statcifiles行是需要恢复到pipe理页面的CSS,所以取消注释,'django.contrib.staticfiles',

我读了几个其他线程试图解决这个问题…采取了其他线程别名。 这假定您自己的自定义应用程序正在提供静态文件,这将表明您的STATIC_ROOT和STATIC_URL具有适当的设置。

 STATIC_ROOT = '' STATIC_URL = '/static/' 

然后(从你的静态目录):

 ubuntu@ip-1-2-3-4:/srv/www/mysite.com/app_folder/static$ sudo ln -s /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/ admin 

希望这可以帮助别人…这个话题有很多线索。 🙁

/project_name/project_name/settings.py你需要设置STATIC_URL来告诉你的网站静态文件使用什么url。

然后将STATIC_ROOT设置为文件系统上的某个文件夹,与STATICFILES_DIRS列表中列出的任何目录都不相同。

一旦设置了STATICFILES_ROOT ,就可以从项目目录运行python manage.py collectstatic

这将复制STATICFILES_DIRS列表中列出的所有其他文件夹中的所有pipe理静态文件和所有文件。 基本上,这将所有的静态文件放在一个地方,所以你可以将它们移动到您的CDN部署您的网站时。 如果你像我一样没有CDN,那么你有两个select:

  1. 将您设置为STATIC_ROOT的文件夹添加到STATICFILES_DIRS列表中。 这将允许django中的静态文件查找器find所有的静态文件。
  2. 将静态文件的整个文件夹移动到文件系统的其他位置,并指示STATICFILES_DIRS包含该新位置。

我对这个答案的安全性没有任何评论,这只是我能够用我的web服务器开发小型项目的方式。 我希望你会想要一个CDN作为Django的build议,如果你正在做任何更大的规模。

更新:我刚刚遇到这个问题,这种方法并没有完全做我想要的东西。 最后为我工作的是在运行collectstatic我只是将其放入STATICFILES_ROOT的pipe理静态文件复制到我用于自己的静态文件的目录中。 这解决了我的问题。

如果您使用Apache服务器来托pipe您的django站点,您需要确保静态别名指向您的/目录到site / site_media / static /。 如果您的静态文件在/ site / site_media / static /目录中,则以前的Apache别名configuration将不起作用。

确保'django.contrib.staticfiles'在您的settings.py中的INSTALLED_APPS

除了许多其他有用的答案之外,我还有一个尚未注意到的问题。 从Django 1.3升级到1.6后,我的静态文件目录有一个到django admin静态文件的错误的符号链接。

我的settings.pyconfiguration为:

 STATICFILES_DIRS = ( '/var/www/static/my-dev', ) 

根据这个答案 ,

Django现在可以在URL / admin /目录下findpipe理静态文件。

我有一个符号链接/var/www/static/my-dev/admin被设置为:

 admin -> /usr/local/lib/python2.7/dist-packages/django/contrib/admin/media/ 

那个位置在django 1.6中不再存在,所以我更新了链接:

 admin -> /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/ 

而现在我的pipe理网站正常工作。

在遵循Django教程的时候,我遇到了类似的问题,在我的情况下,问题是开发服务器在使用css文件时使用的mimetype。

所提供的MIMEtypes是“application / x-css”,导致Chrome中出现以下警告消息(位于开发人员工具的“networking”选项卡中):

将资源解释为样式表,但使用MIMEtypesapplication / x-css传输:“ http://127.0.0.1:8000/static/admin/css/base.css

我find的解决方法:通过将以下行添加到django webapp的manage.py文件中,更改要提供的mimetype:

 import mimetypes mimetypes.init() mimetypes.types_map['.css'] = 'text/css' 

注意:在Python 2.7和Chrome 40.0上使用Django 1.7.4

在django-1.10.5和python-2.7.13中开发一个站点时遇到的问题也是这样。 但是在我的firefox-51和chrome中,login页面能够获得CSS,但仍然没有样式。 但奇怪的是它在IE-8上工作。

我试过在这里提到的所有可能的事情,适合我的一套sw版本。 没有工作。

但是,当我试图在其他系统上有python-2.7.8的同一网站,它的工作..

刚刚发布,如果它可以帮助某人…

编辑:后来我发现,在python-2.7.13中,在settings.py中写入以下两行(加上清除浏览器的caching)已经成功

 import mimetypes mimetypes.add_type("text/css", ".css", True) 

如果您在STATICFILES_DIRS的settings.py中设置了一个值,并且声明的文件夹不存在或者位置错误,则会导致Admin没有样式,例如通过定义STATICFILES_DIRS =(os.path.join(BASE_DIR,“static” ))和静态文件夹不存在