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

时间:2016-07-30 13:51:04

标签: python django media production pythonanywhere

我有一个使用django编写的基本文件上传系统。它工作正常,文件正确上传到正确的路径。但是,当使用谷歌驱动器查看器时,它会出现预览不可用。经过一番挖掘,我发现问题必定是找不到网址,但事实并非如此。

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

我的媒体网址已正确映射到媒体目录,如pythonanywhere帮助页面所示。​​

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

文件保存在文件系统的正确位置。我的静态文件很好,并且与媒体文件的设置几乎相同。

我一直试图解决这个问题两天,但还没有找到解决方案。有什么想法吗?

在我的settings.py中:

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL ='/media/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'

值得注意的是,当我故意将错误的路径放置到静态文件时,404错误不包括django搜索过的url列表。它在404的媒体错误消息中。所以服务器直接提供静态文件而不将请求传递给wsgi层,但由于某种原因,它不是以同样的方式处理媒体网址?顺便说一句,我正在使用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.

0 个答案:

没有答案