从Django应用程序在共享主机上提供媒体服务的最佳方式是什么?

时间:2010-06-18 19:56:56

标签: django hosting fastcgi

我正在使用FastCGI来为我的Django应用程序提供服务,所以基本上它的工作原理如下:http://docs.djangoproject.com/en/dev/howto/deployment/fastcgi/#running-django-on-a-shared-hosting-provider-with-apache

我可以从中提供静态媒体(图像,CSS等)的最佳方式是什么?谢谢!

4 个答案:

答案 0 :(得分:1)

如果使用Apache来访问网站,我们通常会使用WSGI连接到django,然后让Apache处理'/ media / ...任何......'作为静态服务的内容。这是几行配置和Bob's your Uncle

更新:我应该补充一点,我们的大多数Django网站都在专用服务器上,但您也可以在webfaction.com轻松完成此操作。

E.g。

<Location "/media">
    SetHandler None
</Location>

答案 1 :(得分:0)

将任何适当的Alias指令添加到您的Web服务器配置中,从最深到最浅。

答案 2 :(得分:0)

我在apache conf中使用它:

Alias /static/  /path/to/static/files/
<Directory /path/to/static/files/>
    Order deny,allow
    Allow from all
</Directory>

答案 3 :(得分:0)

如果您没有对apache conf的写入权限,可以在.htaccess中执行此操作

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/path/to/media/files/ 
RewriteRule ^(.*)$ mysite.fcgi/$1 [QSA,L]

或类似的东西。这可确保以媒体文件路径开头的任何URL都不会重定向到快速cgi。如果您已有某些条件,则可以使用RewriteCond添加多个[OR]