2011-08-02 47 views
0

出于某种原因,我无法弄清楚,除了当我尝试在我的Django应用程序中访问media文件(由用户上传的文件)时继续爬行的“愚蠢”错误,为什么我不能服务器media文件!在Django开发服务器上通过Apache提供媒体文件?

在这种特殊情况下,我想要的所有例子都是能够将图像提供给上传的前端。我的up通过/static/正确地提供静态文件,但是当我尝试服务我的/site_media/文件时,地狱崩溃了!我可能做错了什么?

因此,在意识到Django本质上不是真正处理媒体文件后,我决定采用推荐的mod_python选项来使用Apache,就像它推荐在生产中一样。但我从来没有这样做过,并且想知道这是否值得开发服务器上的麻烦。

嗯,我知道最终我有,当我去生产走上这条道路,所以仍然要学习如何做到这一点,但什么都为开发服务器上这条路线的利弊?

回答

0

这无疑是一个亲,因为Django的服务请求更快,而不必与媒体打交道。

一个骗局是,如果和当你编辑媒体,你还需要重新启动apache,为媒体刷新。

根据你的意见更新:

你当然可以轻松地做到这一点。我练习这种方法的一个简单方法是,使用nginx并将媒体文件夹符号链接到启用nginx的站点,并在端口80(或任何其他站点)上运行nginx。

你可以在你的设置,你点它与相应的端口的URL设置MEDIA_URL。

+0

但这是可能的,不,问题是我如何把它关闭?我是否也使用apache在与Django相同的端口上提供文件?无论如何,我并不想使用'mod_python',只是想让Apache处理媒体,剩下的则留给Django。任何提示或指针?谢谢 – nemesisfixx

0

首先,mod_python是而不是推荐。实际上,特别推荐。改用mod_wsgi。

其次,我们告诉你在做什么错通过开发服务器支持静态媒体的时候,因为你没有提供您设置的代码或细节没有可能的方式。

最后,没有理由不能使用Apache - 甚至更好,像nginx这样的轻量级服务器 - 并且只将它指向静态目录。然后,将settings.py中的STATIC_URL设置为该服务器提供的地址。在开发过程中,它所处的端口没有区别。

相关问题