首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >托管Apache的Django静态文件

托管Apache的Django静态文件
EN

Stack Overflow用户
提问于 2011-04-16 06:07:17
回答 3查看 26.6K关注 0票数 23

我正在尝试将我一直在开发的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不存在。我已经被困在这个问题上有一段时间了,所以任何帮助都将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-16 11:17:12

我想通了。我在下面的代码行中遇到了apache配置错误:

Alias /static/ /home/daifotis/code/feris/sitestatic

我应该不使用尾部的斜杠来编写static。使用尾随的斜杠,Apache将不会展开URL路径。

Alias /static /home/daifotis/code/feris/sitestatic
票数 51
EN

Stack Overflow用户

发布于 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错误?

票数 2
EN

Stack Overflow用户

发布于 2021-05-23 18:24:39

我知道这是一个老生常谈的问题,但我也有同样的问题,我已经尝试了所有的方法。事实证明,我在apache中启用了app.conf,但忘记在apache服务器中禁用000-default.conf。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5682809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档