【问题标题】:Accessing media file in Django在 Django 中访问媒体文件
【发布时间】:2019-02-10 04:27:46
【问题描述】:

我有这个根

project
   polls
       data
          xml_files
             x.xml

我已经添加了

MEDIA_URL = '/data/'
MEDIA_ROOT = '/data/xml_files/'

我已经添加了

urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'', include('web.urls')),
]  + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

当我尝试时

localhost:8000/data/fuzzy.xml

它发送404 page not found/data/xml_files/FuzzyMirab1.xml 不存在

我怎样才能访问它?

【问题讨论】:

  • 尝试包括投票文件夹?
  • 确保django.contrib.staticfiles 包含在您的INSTALLED_APPS 中。
  • 你使用 Django 开发服务器(runserver 命令)吗?在这种情况下,请确保将 DEBUG 设置为 True
  • 我试过 MEDIA_URL=/polls/data/xml_files/ 但它没有用。我确信 django.contrib.staticfiles 包括在内。
  • 您的 MEDIA_ROOT 是绝对路径,而不是相对路径。尝试改变它

标签: python django python-2.7 django-1.11


【解决方案1】:

我建议你把data文件夹移到你项目的根目录下:

project
   data
       xml_files
           x.xml
   polls

并删除MEDIA_ROOT开头的斜线:

MEDIA_ROOT = 'data/xml_files/'

或者您可以在不移动目录的情况下使用polls/data/xml_files/,但它对我来说似乎是一个糟糕的架构。

正如@Mikhail Burshteyn 所建议的,您也可以使用绝对路径:

MEDIA_ROOT = '/path/to/project/polls/data/xml_files/'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-23
    • 2022-12-14
    • 1970-01-01
    相关资源
    最近更新 更多