我正在我的 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/,登录部分显示得很好。但是,没有样式。
我将文件从 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?
编辑2
如果我在 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 文件就在那里...
编辑 3
这些在我的 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
请您参考如下方法:
I copied the files over from the sitepackages/django/contrib/admin directory to /Users/username/Projects/django/cake/static/admin. I can see the files are there.
无需复制 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
...或者如果您不打算更改管理页面,符号链接(symbolic link)就足够了...
ln -s /path/to/sitepackages/django/contrib/admin/static/admin /Users/username/Projects/django/cake/static
更新
I don't use the django development server; I'm running apache.
/static/ 目录由 Django 开发服务器自动处理,但如果您尝试通过 apache 执行此操作,则必须添加一个 Alias 在你的 apache 配置中的指令,沿着...
Alias /static /Users/username/Projects/django/cake/static
它包含在 deployment docs 中,尽管在您进行开发时,使用内置的开发服务器要容易得多,因为只要您更改任何源文件,它就会自动重启。
如果您将 apache 与 mod_wsgi 一起使用,则每次更改源文件时都必须手动重新启动 apache。
