我在本地创建了一个没有任何问题的Django项目。但是,在Amazon AWS上安装烦人且困难的Cherokee + uWSGI之后,我的项目没有显示Django .css内部文件。
http://f.cl.ly/items/2Q2W3I3R0X1n2X3v0q2P/django_error.jpg< - /Admin/
看起来像这样
图像是我的/ admin /的屏幕,它应该有不同的样式,但不会加载.css文件。
[pid: 23206|app: 0|req: 19/19] 83.49.10.217 () {56 vars in 1121 bytes} [Sun Apr 15 05:50:24 2012] GET /static/admin/css/base.css => generated 2896 bytes in 6 msecs (HTTP/1.1 404) 1 headers in 51 bytes (1 switches on core 0)
[pid: 23206|app: 0|req: 20/20] 83.49.10.217 () {56 vars in 1125 bytes} [Sun Apr 15 05:50:24 2012] GET /static/admin/css/login.css => generated 2899 bytes in 5 msecs (HTTP/1.1 404) 1 headers in 51 bytes (1 switches on core 0)
这是Cherokee的日志。我不明白为什么它在该路径中寻找.css文件。 Cherokee应该在Django原始目录中搜索文件,所以我没有在我的项目中更改.css文件。
有什么建议吗?非常感谢。
答案 0 :(得分:1)
听起来你正在使用Django 1.4,这是预期的行为。
检查release notes中的向后不兼容更改部分:
包含的管理应用程序django.contrib.admin已经有很长时间了 时间附带一组默认的静态文件,如JavaScript, 图像和样式表。 Django 1.3添加了一个新的contrib应用程序 django.contrib.staticfiles以通用方式处理这些文件 为应用程序中包含的静态文件定义的约定。
从Django 1.4开始,管理员的静态文件也遵循这一点 约定,使文件更容易部署。在以前的版本中 在Django中,定义ADMIN_MEDIA_PREFIX设置也很常见 指向管理员静态文件在Web上的URL 服务器。此设置现已弃用,并由更多设置取代 一般设定STATIC_URL。 Django现在期望找到管理员 URL / admin /.
下的静态文件如果您以前使用过ADMIN_MEDIA_PREFIX的网址路径(例如 / media /)只需确保配置了STATIC_URL和STATIC_ROOT 并且您的Web服务器正确地提供这些文件。发展 服务器继续像以前一样提供管理文件。阅读 静态文件howto了解更多详情。
如果您的ADMIN_MEDIA_PREFIX设置为特定域(例如 http://media.example.com/admin/),一定要设置你的 STATIC_URL设置为正确的URL - 例如, http://media.example.com/ *