我正在我的mac上创建一个Django开发环境,管理员找不到用于样式设置的媒体文件。这是我的settings.py文件:
STATIC_ROOT = '/Users/username/Projects/django/cake/static/'
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/static/admin/'
这是我转到的URL,http://127.0.0.1/admin/
,login部分显示得很好。但是,没有样式。
我通过以下方式将文件从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"
所以,这应该是问题所在。我该怎么解决?管理员是否已处理将静态url添加到管理员媒体前缀?
如果我在admin_media_prefix
中硬编码完整路径,它仍然不使用样式表。
在my 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
我在生产中连接Django管理CSS的解决方案是:
/etc/apache2/apache2.conf
在settings.py中
重要的是,不要忘记
然后在生产服务器SSH shell中运行
./manage.py collectstatic
。完成!
不需要复制
sitepackages/django/contrib/admin
中的所有文件。只需复制目录sitepackages/django/contrib/admin/static/admin
和。。。…或者如果你不想更改管理页面,一个符号链接就足够了。。。
更新
Django开发服务器会自动处理
/static/
目录,但是如果您试图通过apache执行此操作,则必须在apache配置中添加一个Alias
指令,其行如下。。。在deployment docs中介绍了它,尽管在开发时,使用内置的开发服务器要容易得多,因为每当您更改任何源文件时,它都会自动重新启动。
如果将apache与mod_wsgi一起使用,那么每次更改源文件时都必须手动重新启动apache。
相关问题 更多 >
编程相关推荐