我正在尝试将我一直在开发的Django站点从开发服务器阶段移到一个真正的托管环境中。目前,我只是在我的个人机器上托管。我已经安装了Apache和mod-wsgi,但在启动静态文件时遇到了问题。我很确定这跟阿帕奇有关。下面是我的站点配置文件:
<VirtualHost *:80>
ServerName localhost
ServerAlias daifotis.dyndns.org
ServerAdmin webmaster@daifotis.com
DocumentRoot /home/daifotis/code/
Alias /media/ /home/daifotis/code/feris/sitestatic
Alias /static/ /home/daifotis/code/feris/sitestatic
#AliasMatch ^/([^/]*\.css) /home/daifotis/code/feris/sitestatic/$1
<Directory /home/daifotis/code/feris/sitestatic>
Order allow,deny
Allow from all
</Directory>
<Directory /home/daifotis/code/feris>
Order allow,deny
Allow from all
</Directory>
<Directory /home/daifotis/code/feris/jobsite>
Order allow,deny
Allow from all
</Directory>
WSGIDaemonProcess feris processes=2 threads=15 display-name=%{GROUP}
WSGIProcessGroup feris
WSGIScriptAlias / /home/daifotis/code/feris/apache/django.wsgi
<Directory /home/daifotis/code/feris/apache>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
我正在尝试托管我使用static作为别名的目录中的文件。当我试图加载网站时,所有的内容都出现了,但没有css。此外,当我点击我的url www.server.com/static/时,页面会显示目录的正确内容。我不明白的是,为什么当我点击一个链接来查看一个文件时,它却显示URL不存在。我已经被困在这个问题上有一段时间了,所以任何帮助都将不胜感激。
发布于 2011-04-16 11:17:12
我想通了。我在下面的代码行中遇到了apache配置错误:
Alias /static/ /home/daifotis/code/feris/sitestatic
我应该不使用尾部的斜杠来编写static。使用尾随的斜杠,Apache将不会展开URL路径。
Alias /static /home/daifotis/code/feris/sitestatic
发布于 2011-04-16 08:36:14
我假设你使用的是Django 1.3,以及提供静态文件服务的“新”方式。您能向我们展示一下您的settings.py
文件中与媒体和静态相关的设置吗?根目录版本和URL版本。同时也要展示你的STATICFILES_DIRS。
最可能的原因是Django仅被配置为使用contrib.staticfiles
提供静态文件。您可能需要运行管理命令apache来将所有应用程序静态文件收集到一个目录中,以便由python manage.py collectstatic
提供服务。
有关使用django.contrib.staticfiles
的设置,请参阅my answer here。
如果您的静态文件100%存在于Alias /static/ /home/daifotis/code/feris/sitestatic
指向的目录中,那么您对apache的权限配置可能不正确。您是否检查过/var/log/httpd/error_log
文件,以查看在尝试提供静态内容时是否存在IOPermissions错误?
发布于 2021-05-23 18:24:39
我知道这是一个老生常谈的问题,但我也有同样的问题,我已经尝试了所有的方法。事实证明,我在apache中启用了app.conf,但忘记在apache服务器中禁用000-default.conf。
https://stackoverflow.com/questions/5682809
复制相似问题