0

我在本地创建了一个 Django 项目,它运行没有任何问题。但是,在亚马逊 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)

这是切诺基的日志。我不明白它为什么要在该路径中查找 .css 文件。Cherokee 应该在 Django 原始目录中搜索文件,所以我没有更改项目中的 .css 文件。

有什么建议吗?非常感谢。

4

1 回答 1

1

听起来您正在使用 Django 1.4,这是预期的行为。

查看发行说明中的​​向后不兼容更改部分:

包含的管理应用程序 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 的 URL 路径(例如 /media/),只需确保配置了 STATIC_URL 和 STATIC_ROOT 并且您的 Web 服务器正确地提供这些文件。开发服务器继续像以前一样提供管理文件。阅读静态文件 howto 以获取更多详细信息。

如果您的 ADMIN_MEDIA_PREFIX 设置为特定域(例如 http://media.example.com/admin/),请确保您的 STATIC_URL 设置也设置为正确的 URL - 例如 http://media.example。 com /.*

于 2012-04-15T05:23:17.347 回答