在Django开发服务器上通过Apache服务媒体文件?

时间:2011-08-02 08:23:41

标签: django apache media mod-python

由于某些原因我无法弄清楚,除了在我的Django应用程序中尝试访问media文件(用户上传的文件)时不断出现的“愚蠢”错误,为什么我只是无法提供media个文件!

在这种特殊情况下,我想要的只是能够将图像提供给已经上传的前端。我通过/static/正确地提供了静态文件,但是当我尝试提供我的/site_media/文件时,它会破坏!我能做错什么?

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

嗯,我知道最终我必须在生产时走这条路,所以仍然需要学习如何做到这一点,但这条路线在开发服务器上的优缺点是什么?

2 个答案:

答案 0 :(得分:0)

由于django无需处理媒体就能更快地满足请求,因此肯定是专家。

一个问题是,如果您在编辑媒体时,还需要重新启动Apache,以便刷新媒体。

根据您的评论进行更新:

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

您可以在设置中设置MEDIA_URL,并使用适当的端口将其指向网址。

答案 1 :(得分:0)

首先,推荐mod_python 。事实上,它特别推荐反对。改为使用mod_wsgi。

其次,我们没有办法在通过开发服务器提供静态媒体时告诉您出错了什么,因为您没有提供设置的代码或详细信息。

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