【问题标题】:How to override django static file development server?如何覆盖 django 静态文件开发服务器?
【发布时间】:2012-06-03 22:11:02
【问题描述】:

我开始使用应用程序 'django.contrib.staticfiles' 将静态文件收集到我的项目的 /static/ 目录中。

问题是,当我使用 django 开发服务器 (manage.py runserver) 时,它会自动提供静态文件。

通常没问题,但就我而言,我想自己提供这些静态文件。

我想在 urls.py 文件中加入类似的内容:

urlpatterns += patterns('',
        url('^static/(?P<path>.*)$', myStaticMediaServe,{'document_root': settings.STATIC_ROOT ,'show_indexes': True}),
        )

问题是当 settings.DEBUG=True 时,'django.contrib.staticfiles' 应用程序在 '/static/' url 上具有优先权:我找不到让 Django 使用我的 '/static/' urlpattern 描述的方法处于调试模式时

如果我从 settings.py 中删除 'django.contrib.staticfiles':我的 '/static/' urlpattern 有效,但我丢失了收集的静态文件。

您是否有使用“django.contrib.staticfiles”的想法并通过 urlpattern 描述使用我自己的静态文件服务器并设置了 settins.DEBUG=True

【问题讨论】:

    标签: django


    【解决方案1】:

    我发现,默认情况下,django 'runserver' 本身会抢占 /static/ url:即使使用自定义中间件,您也不能强制 django 将 '/static/' 指向您的代码。

    我找到的唯一解决方案:使用 --nostatic 选项作为 './manage.py runserver',然后可以使用他自己的 url 模式和视图来提供静态文件。

    【讨论】:

      【解决方案2】:

      DEBUG 设置为False。 Django 仅在为 True 时提供静态文件。

      【讨论】:

      • 不幸的是,我正在开发,我需要调试到 True !
      猜你喜欢
      • 1970-01-01
      • 2012-03-01
      • 1970-01-01
      • 2017-11-15
      • 2013-12-08
      • 2015-04-27
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      相关资源
      最近更新 更多