我正在我的mac上创建一个Django开发环境,而管理员没有找到用于样式化的媒体文件。这是我的settings.py文件:
STATIC_ROOT = '/Users/username/Projects/django/cake/static/'
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/static/admin/'
这是我转到的网址http://127.0.0.1/admin/
,登录部分显示就好了。然而,没有造型。
我将文件从sitepackages/django/contrib/admin/media/
目录复制到/Users/username/Projects/django/cake/static/admin/
,通过:
cp -r /Users/username/.virtualenvs/django/lib/python2.7/site-packages/django/contrib/admin/media/ ./
我可以看到文件在那里。
我只是查看了源代码,这是用于css的路径:href="/static/admin/css/base.css"
所以,这应该是问题所在。我该如何解决这个问题?管理员是否已经处理将static_url添加到admin_media_prefix?
如果我在admin_media_prefix
中硬编码完整路径,它仍然不使用样式表。
在我的settings.py中:
ADMIN_MEDIA_PREFIX = '/Users/username/Projects/django/cake/static/admin/'
源代码显示:
href="/Users/username/Projects/django/cake/static/admin/css/base.css"
当我去那个目录时,CSS文件就在那里......
这些是在我的apache配置中:
Alias /site_media/ /Users/username/Projects/django/cake/media
Alias /static/ /Users/username/Projects/django/cake/static
Alias /media/ /Users/username/.virtualenvs/django/lib/python2.7/site-packages/django/contrib/admin/media
答案 0 :(得分:3)
我从sitepackages / django / contrib / admin复制了文件 目录到/ Users / username / Projects / django / cake / static / admin。我可以 看文件在那里。
无需复制sitepackages/django/contrib/admin
中的所有文件。只需使用...
sitepackages/django/contrib/admin/static/admin
即可
cp -R /path/to/sitepackages/django/contrib/admin/static/admin /Users/username/Projects/django/cake/static
...或者如果您不打算更改管理页面,符号链接就足够了......
ln -s /path/to/sitepackages/django/contrib/admin/static/admin /Users/username/Projects/django/cake/static
<强>更新强>
我不使用django开发服务器;我正在运行apache。
Django开发服务器会自动处理/static/
目录,但是如果您尝试通过apache执行此操作,则必须在apache配置中添加Alias
指令, ......的线条。
Alias /static /Users/username/Projects/django/cake/static
它涵盖在deployment docs中,虽然在开发过程中,使用内置开发服务器要容易得多,因为每当您更改任何源文件时它都会自动重启。
如果您正在使用带有mod_wsgi的apache,那么每次更改源文件时都必须手动重启apache。
答案 1 :(得分:0)
答案 2 :(得分:0)
我在生产中连接Django Admin CSS的解决方案是:
<强> /etc/apache2/apache2.conf中强>
Alias /static/ /home/aaron/public_html/samapet.com/kennel/static/
<Location "/static/">
Options -Indexes
</Location>
在settings.py中
STATIC_ROOT = /home/aaron/public_html/samapet.com/kennel/static/ # Path to Static Dir
STATIC_URL = '/static/'
重要,不要忘记
然后在生产服务器SSH shell中运行./manage.py collectstatic
。
完成!
答案 3 :(得分:0)
我得到了简单的解决方案,我查看了/ var / log / httpd /
中的access_log文件127.0.0.1 - - [28/Dec/2013:14:49:20 -0500] "GET /static/admin/css/login.css HTTP/1.1" 200 836 "http://127.0.0.1/admin/" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.24) Gecko/20111109 CentOS/3.6.24-3.el6.centos Firefox/3.6.24"
使用
在/etc/httpd/conf/httpd.conf文件中配置静态路径Alias /static /usr/lib/python2.6/site-packages/django/contrib/admin/static
在<VirtualHost 127.0.0.1:80>
标记内,
然后我使用
重新启动服务service httpd restart
它工作!!!
答案 4 :(得分:0)
我有同样的问题,但python manage.py collectstatic
没有解决我的问题,所以我不得不将css文件直接复制到我的静态文件夹中!
$path_to_my_app/static$ tree -L 1
.
├── css
├── fonts
└── js
使用我的配置(ubuntu 12.04和python 2.7),admin css和js静态文件目录的目录在这里:
/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static
然后我将admin文件夹从上面的路径复制到我的应用程序的静态路径,所以它看起来像这样:
.
├── admin
├── css
├── fonts
└── js
这对我有用。