【问题标题】:How can I tell Apache to serve these files for a Django app?如何告诉 Apache 为 Django 应用程序提供这些文件?
【发布时间】:2012-01-23 11:34:29
【问题描述】:

我的 httpd.conf 末尾有这个配置:

<Location "/">
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE myapp.settings
    PythonOption django.root /
    PythonDebug On
    PythonPath "['/my/path] + sys.path"

</Location>

这允许我的应用程序启动,但不会提供静态文件。我正在考虑添加这样的内容:

<Location "/site_media">
    # what to add here?
</Location>

并告诉 Apache 提供来自 /site_media/.../my/path/myapp/media 的文件。但是,我找不到在 /site_media 和我的媒体目录的实际路径之间建立连接的方法。你能指导我吗?

编辑:我将此添加到 httpd.conf:

Alias /site_media /my/path/myapp/media

<Directory /my/path/myapp/media>
    Order allow,deny
    Allow from all
</Directory>

<Location "/site_media">
</Location>

但是,Apache 仍然给我 404 错误。我还尝试在 /site_media/ 位置元素中添加 SetHandler None,但我仍然收到相同的 404 错误代码。

【问题讨论】:

    标签: django apache static-files


    【解决方案1】:

    Alias,但请阅读完整部分。

    【讨论】:

    • 我更新了问题,但仍然无法访问静态文件。你能发现我做错了什么吗?
    • 似乎因为Location/,所以 Apache 认为静态文件将从那里提供。如果我删除Location "/",那么我会得到我的静态文件,但我没有应用程序。有没有办法让两者都存在?
    • 我想通了,我不小心把Location "/site_media" 放在Location "/" 上面:)。在我把它放在下面之后,它就起作用了!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-07-19
    • 2011-11-12
    • 2022-08-14
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    • 2016-05-05
    相关资源
    最近更新 更多