【问题标题】:404 Error while serving Django 1.7 static files on Apache在 Apache 上提供 Django 1.7 静态文件时出现 404 错误
【发布时间】:2015-02-28 11:08:05
【问题描述】:

多年来,我一直是 django 开发人员,但是在提供静态文件时,一个 1.7 的小型实践项目让我非常头疼。

我已经设置了 STATIC_ROOT

STATIC_ROOT = '/var/www/mydomain/static'

我已经设置了 STATIC_URL

STATIC_URL = '/static/' #as default

我没有使用 STATICFILES_DIRS,因为我有一个名为“pages”的应用程序,它位于 INSTALLED_APPS 中。在本地主机上,静态文件正确提供

我使用的是 Ubuntu 14.4 和 Apache/2.4.7

我的 apache conf 是

<VirtualHost *:80>
    ServerName mydomain.net #I own the domain and pointed it correctly in GoDaddy
    ServerAlias www.mydomain.net

    Alias /static/ /var/www/mydomain/static

    <Directory /var/www/mydomain/static>
        Require all granted
    </Directory>

    WSGIScriptAlias / /var/www/mydomain/mydomain/wsgi.py

    <Directory /var/www/mydomain/mydomain>
        <Files wsgi.py>
           Require all granted
        </Files>
    </Directory>

    WSGIDaemonProcess mydomain.net python-path=/var/www/mydomain:/var/www/mydomain/venv/lib/python2.7/site-packages
    WSGIProcessGroup mydomain.net
</VirtualHost>

我已经运行 collectstatic 并确认所有静态文件都在 /var/www/mydomain/static/* 中。

网站加载,但我在所有 css 和 js 文件上都收到 404。

所有调试工作都失败了。我已经删除了 STATIC_ROOT 目录以期望 403,但仍然得到 404。我已经将所有文件/文件夹都设置为 root 以进行测试;没有。我创建了一个部署用户并将所有文件/文件夹添加到它;没有。我已经将所有文件/文件夹都添加到 www-data;什么都没有!!

Apache 2.4+ 中是否有让我失望的新配置?

【问题讨论】:

  • 您是从 apache 还是 django 获得 404 的?当你得到一个 404 时,你可以发布你的 apache /var/log/error.log(或其他)的 sn-p。最后,你是在使用 SELinux 运行的东西吗?
  • 这个线程有什么更新吗?
  • 也许显示您网站的 curl 调用?也许尝试/static 而不是/static/

标签: python django apache mod-wsgi


【解决方案1】:

您可以做的是检查您的 /var/www/mydomain 路径并查找文件夹。我认为它还没有。如果没有,则将您的文件夹复制到这个地方,以便 apache 可以为它提供服务。 值得一看

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 2017-09-04
    • 2014-12-22
    • 1970-01-01
    • 2015-03-13
    • 2019-04-12
    • 2018-10-12
    相关资源
    最近更新 更多