我在设置 Apache 以提供静态 Django 文件时遇到问题。我在共享主机上,无权访问 Apache 配置文件。所有示例都Alias
在 Apache 配置文件中使用,所以我试图弄清楚如何使用 .htaccess 中的 mod_rewrite 来做到这一点。
我的 setup.py 看起来像这样:
STATIC_ROOT = '/home2/usr/public_html/mydjangoproject/static'
STATIC_URL = '/static/'
我python manage.py collectstatic
在终端中运行,它完成了它的工作,所以现在我有一个文件夹,/public_html/mydjangoproject/static
其中当前包含子文件夹admin
及其内容。
现在我正在尝试将 apache 配置为仅提供静态文件而不是通过 mod_wsgi,正如它在此处的文档中所说:
我们强烈建议使用 django.contrib.staticfiles 来处理管理文件(以及上一节中概述的 Web 服务器;这意味着使用 collectstatic 管理命令来收集 STATIC_ROOT 中的静态文件,然后配置您的 Web 服务器以提供服务STATIC_ROOT 在 STATIC_URL )
为此,我在 .htaccess 文件中添加了第 3 行,如下所示。该文件位于/home2/usr/public_html/mydjangoproject/.htaccess
我的 .htaccess 文件:
AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteRule /static/ /home2/usr/public_html/mydjangoproject/static
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ mysite.fcgi/$1 [QSA,L]
请注意,我尝试使用和不使用斜杠的第 3 行,但没有效果。
当我访问 www.mysite.com/mydjangoproject/static/ 时,我收到 500 内部服务器错误。同样,管理页面仍然没有得到它需要的 css 文件。这是怎么回事?