【问题标题】:How do I serve static admin files in Django 1.4?如何在 Django 1.4 中提供静态管理文件?
【发布时间】:2012-07-18 15:49:25
【问题描述】:

我有一个从 Django 1.2 开始的 Django 项目。现在我尝试在 Django 1.4 下运行它,在开发环境中,使用内置的网络服务器。我无法工作的一件事是管理界面的静态文件。在我的 django 服务器的窗口中,我看到:

Django version 1.4, using settings 'settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
[18/Jul/2012 11:38:04] "GET /admin/ HTTP/1.1" 200 6452
[18/Jul/2012 11:38:05] "GET /admin/admin/css/base.css HTTP/1.1" 404 4249
[18/Jul/2012 11:38:05] "GET /admin/admin/css/dashboard.css HTTP/1.1" 404 4264

我看到 ADMIN_MEDIA_PREFIX 已被弃用,但我显然错过了告诉我必须做什么才能让管理页面在开发中工作的 HOWTO。

【问题讨论】:

  • 代替ADMIN_MEDIA_PREFIX,使用STATIC_URL 并将管理文件放在<STATIC_URL>/admin/ 下。如果 ADMIN_MEDIA 指向一个完全不同的 URL,那么您可能希望将 STATIC_URL 设置为该 URL。

标签: django django-admin


【解决方案1】:

您是否尝试过运行 collectstatic 来收集您的静态文件?

https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#collectstatic

【讨论】:

  • 我是否必须这样做才能使管理界面与开发服务器一起工作?
  • 您没有必须这样做,但这是一种将静态文件自动拉入模板目录的简单方法。
【解决方案2】:

我终于用“django-admin startproject”开始了另一个项目,并开始挑选设置文件。我发现新的设置文件有:

  • 将“django.contrib.staticfiles”添加到 INSTALLED_APPS

  • 添加了一些 STATIC_ 设置。我复制了这四个:

    STATIC_ROOT = ''

    STATIC_URL = '/static/'

    STATICFILES_DIRS = ()

    STATICFILES_FINDERS = ()

现在看来一切正常。

【讨论】:

    【解决方案3】:

    在 django 1.4 中可以使用静态标签

    {% load static %}
    
    <a href="{% static 'img/foo.png' %}">
    

    【讨论】:

    • 但这是(django 提供的)管理界面。我不应该改变它,恕我直言。
    猜你喜欢
    • 2014-07-06
    • 2018-08-26
    • 2012-03-19
    • 2017-07-18
    • 1970-01-01
    • 2012-05-08
    • 2012-06-05
    • 2012-12-01
    • 2012-04-15
    相关资源
    最近更新 更多