【问题标题】:Django NoReverseMatch when Debug=False当 Debug=False 时 Django NoReverseMatch
【发布时间】:2013-12-03 00:41:06
【问题描述】:

我的 django 网站运行良好,但是当我设置 DEBUG=False 时,它会向我发送一封电子邮件,并显示以下错误:

NoReverseMatch:使用参数反转“django.views.static.serve” '('',)' 和关键字参数 '{}' 未找到。

我设置了ALLOWED_HOSTS=['*'],但没有解决。

管理网站运行良好。

有什么想法吗?

编辑

经过一番挖掘,我也发现了这个错误:

File "/srv/mysite/myapp/views.py", line 38, in home
    { 'request': request}, context_instance=RequestContext(request))

这是在我的主页上:

def home(request):

    return render_to_response('index.html', { 'request': request}, context_instance=RequestContext(request))    

【问题讨论】:

  • 查看静态文件文档中的deployment section
  • 我的静态数据工作正常......
  • 你的settings.py中有STATIC_ROOT = "/var/www/example.com/static/"
  • 能否提供完整的追溯?
  • 好的,现在看起来很清楚了......Burhan 是对的......静态数据有问题:django.views.static.serve......我会提供文件,请稍等

标签: django


【解决方案1】:

为静态文件添加static.serve 的想法通常是错误的。你要做的就是:

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))

STATIC_URL = '/static/'

所以您的文件可以从http://server_addr/static/ 和模板中的{{ STATIC_URL }} 访问

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'project_dir', 'static'),
)

这会生成 ex。 '/home/mcabra/dev/project/project_dir/static/' - 我的开发静态数据在这里

STATIC_ROOT = os.path.join(BASE_DIR, '..', 'static')

这是用于生产的manage.py collectstatic 将修改后的文件从STATICFILES_DIRS 复制到STATIC_ROOT(因此可以进行压缩)。

然后你使用像 Nginx 这样的网络服务器来提供来自STATIC_ROOT 的静态文件。 Django 默认 WSGI Web 服务器仅用于开发目的。请参阅:Django Gunicorn。

希望我能帮上忙。

编辑:
来自 (https://docs.djangoproject.com/en/dev/howto/static-files/)
"提供文件
除了这些配置步骤之外,您还需要实际提供静态文件。

在开发过程中,如果你使用 django.contrib.staticfiles,这将在 DEBUG 设置为 True 时由 runserver 自动完成(参见 django.contrib.staticfiles.views.serve())。 "

【讨论】:

    【解决方案2】:

    你们都说得对,我的静态文件有问题。

    我刚刚在 urls.py 上添加了这段代码,它提供了文件。

    urlpatterns += patterns('',
        (r'^media/(?P<path>.*)$', 'django.views.static.serve', {
        'document_root': settings.MEDIA_ROOT}))
    

    Tks

    【讨论】:

      猜你喜欢
      • 2013-03-25
      • 1970-01-01
      • 2021-08-13
      • 2011-05-25
      • 2018-05-29
      • 1970-01-01
      • 2021-11-05
      • 1970-01-01
      • 2011-06-25
      相关资源
      最近更新 更多