在开发中找到的媒体文件,但不是生产pythonanywh

2024-06-10 11:07:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个用django编写的基本文件上传系统。它工作正常,文件被正确上传到正确的路径。但是,当使用googledriveviewer时,它会显示为预览不可用。经过一番挖掘,我想问题一定是找不到网址,而事实并非如此。在

换句话说,mysite.pythonanywhere.com/media/files/myfile.pdf返回404错误。
但是,http:127.0.0.1:8000/media/files/myfile.pdf工作得非常好(当然是在本地服务器上)。所以这是在生产中提供文件的问题。在

我的媒体url已正确映射到媒体目录,如PythonyWhere帮助页面所示。在

URL = /media/  
DIRECTORY = /home/name/mysite/media

文件保存在文件系统的正确位置。我的静态文件服务很好,有一个几乎相同的媒体文件设置。在

我已经试着解决这个问题两天了,但是没有找到解决办法。有什么想法吗?在

在我的设置.py公司名称:

^{pr2}$

值得注意的是,当我故意将错误的路径放置到静态文件时,404错误不包括django搜索过的url列表。它在404个媒体错误消息中显示。所以服务器直接服务于静态文件,而没有将请求传递到wsgi层,但是由于某些原因,它处理媒体url的方式不同?顺便说一下,我使用debug=False,但只将其设置为True以帮助诊断问题。以下是消息:

    Request Method: GET
    Request URL:http://infodump.pythonanywhere.com/static/randfile.txt
    'randfile.txt' could not be found

    Request Method: GET
    Request URL:    http://infodump.pythonanywhere.com/media/randfile.txt
    Using the URLconf defined in InfoDump.urls, Django tried these URL patterns,in this order:
    1.^admin/
    2.^streamer/
    3.^ ^$ [name='home_page']
    4.^ ^signUpPage/$ [name='sign_up']
    The current URL, media/randfile.txt, didn't match any of these.

Tags: 文件djangonametxtcomhttpurlrequest