【问题标题】:Python Django media url not working after setting DEBUG = True设置 DEBUG = True 后 Python Django 媒体 url 不起作用
【发布时间】:2015-04-13 05:30:19
【问题描述】:

如主题所述,我的 Django 站点媒体 url 在尝试访问后返回 404。一切都完美无缺,直到我想结束开发过程并设置

DEBUG = True

在 settings.py 中让网站一劳永逸地完成。当我将 DEBUG 改回

DEBUG = False

它再次正常工作。我不知道是什么问题,有什么建议吗?

【问题讨论】:

    标签: python django debugging media media-url


    【解决方案1】:

    这是设计使然:https://docs.djangoproject.com/en/dev/howto/static-files/#serving-static-files-during-development

    如果您如上所述使用 django.contrib.staticfiles,runserver 将在 DEBUG 设置为 True 时自动执行此操作。

    话虽如此,您可以通过修改 urls.py 来使用以下解决方法:

    from django.conf import settings
    from django.conf.urls.static import static
    
    urlpatterns = patterns('',
        # ... the rest of your URLconf goes here ...
    ) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
      + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    

    请注意,这是非常低效的,不鼓励用于生产用途。您通常应该配置您的网络服务器(apache、nginx 等)以提供静态和媒体内容。

    【讨论】:

    • 我是在应用程序 urls.py 还是网站 urls.py 中设置?
    • 这将是网站的urls.py。记得添加 import 语句。
    猜你喜欢
    • 2019-09-14
    • 2019-01-05
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 2014-06-12
    • 1970-01-01
    相关资源
    最近更新 更多