2017-05-27 23 views
1

我有一个Django 1.8.4网站与Django CMS 3.1.3。通过djangocms-picture插件,我希望编辑能够将图像上传到网站。如果我上传的图像使用这个插件的网页上,图像中的服务器上的以下文件夹结束:Django CMS - 链接上传图像返回404

[PATH_TO_APP_ROOT]/media/cms_page_media/8/

其中“8”是页面的ID。当我浏览页面时,对图像的链接给出

https://[MY_SITE]/media/cms_page_media/8/my_image.png

但这个链接是不正确的,我得到一个404,我有一个很难搞清楚什么我失踪,但它似乎应该更改一些网址设置。

在settings.py我:

MEDIA_ROOT = os.path.join([PATH_TO_APP_ROOT], "media") 
MEDIA_URL = "/media/" 

哪里[PATH_TO_APP_ROOT]相同上面给出。我没有改变任何媒体设置given in the Django CMS docs,所以他们都应该是默认的。我很困惑,服务器查找/media/cms_page_media/8/my_image.png中的图像,因为cms_page_media-这个URL的一部分来自CMS_PAGE_MEDIA_PATH,它不是URL设置(?)。我需要寻找什么设置来纠正这个问题?

请注意,在DEV(本地)中,一切都适用于我 - 问题仅在生产服务器上。

+1

应用程序根也是Web服务器的根?如果DEBUG关闭,django将不会提供静态或媒体文件,而是让apache/nginx web服务器直接处理它们。这意味着您必须将媒体根指向由Web服务器处理的文件夹,并设置服务器的配置以将此文件夹的内容视为静态内容。 – mch

回答

0

终于有时间来看看这个问题:问题是web服务器(pythonanywhere)配置不正确。在他们的管理工具中,我必须指定媒体文件夹的路径。当我这样做时,它工作,而不必更改任何Django设置。

更多的信息在这里:https://help.pythonanywhere.com/pages/DjangoStaticFiles