【发布时间】:2011-03-05 14:23:50
【问题描述】:
我正在使用 FastCGI 为我的 Django 应用程序提供服务,所以它基本上是这样工作的:http://docs.djangoproject.com/en/dev/howto/deployment/fastcgi/#running-django-on-a-shared-hosting-provider-with-apache
我可以从中提供静态媒体(图像、css 等)的最佳方式是什么?谢谢!
【问题讨论】:
我正在使用 FastCGI 为我的 Django 应用程序提供服务,所以它基本上是这样工作的:http://docs.djangoproject.com/en/dev/howto/deployment/fastcgi/#running-django-on-a-shared-hosting-provider-with-apache
我可以从中提供静态媒体(图像、css 等)的最佳方式是什么?谢谢!
【问题讨论】:
如果使用 Apache 来前端站点,我们通常会使用 WSGI 连接到 django,然后让 Apache 将“/media/...anything...”作为静态服务内容处理。这是几行配置和Bob's your Uncle!
更新:我应该补充一点,我们的大多数 Django 站点都在专用服务器上,但您也可以通过 webfaction.com 轻松完成此操作。
例如
<Location "/media">
SetHandler None
</Location>
【讨论】:
将任何适当的Alias 指令添加到您的网络服务器配置中,从最深到最浅。
【讨论】:
我在我的 apache conf 中使用它:
Alias /static/ /path/to/static/files/
<Directory /path/to/static/files/>
Order deny,allow
Allow from all
</Directory>
【讨论】:
如果您没有 apache conf 的写入权限,您可以在 .htaccess 中执行此操作
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/path/to/media/files/
RewriteRule ^(.*)$ mysite.fcgi/$1 [QSA,L]
或类似的东西。这可以确保任何以媒体文件路径开头的 url 都不会重定向到快速 cgi。如果你已经有一些条件,你可以使用[OR]添加多个RewriteConds。
【讨论】: