1

我听说我应该使用 Apache 在生产环境中提供静态文件。我在理解我应该如何做到这一点时遇到了一些问题。我的项目的静态 URL 是/static/,而django.contrib.admin的静态路径是/static/admin/。这是我服务器上两个完全独立的目录,我几乎不能这样做:

Alias /static /path/to/site.com/static
Alias /static/admin /usr/local/.../django/contrib/admin/media

因为它们重叠。

我该怎么做?我真的必须将 contrib admin 静态文件夹复制到我自己的文件夹中吗?

4

3 回答 3

1

首先,没有人说您必须从与其他人相同的基本路径提供您的管理静态文件。你可以设置ADMIN_MEDIA_PREFIX任何你喜欢的。

但是,当然最简单的事情就是从你的静态文件夹中添加一个符号链接到 django/contrib/admin/media。

于 2011-09-30T14:33:35.170 回答
1

常见的解决方案是使用 /media/ 管理媒体静态文件,所以它可以在 settings.py

ADMIN_MEDIA_PREFIX = '/media/'

在虚拟主机配置中:

Alias /media /path/to/django/contrib/admin/media/
<Location /media>
    SetHandler None
</Location>
于 2011-10-01T22:03:34.670 回答
0

您可以颠倒Alias条目的顺序,Apache 将按预期对其进行解析:

Alias /static/admin /usr/local/.../django/contrib/admin/media
Alias /static /path/to/site.com/static

这是因为当 Apache 加载其配置时,它从自上而下的角度存储条目。所以它首先尝试匹配/static/admin,然后如果 URI 不匹配,它会尝试匹配/static

于 2015-03-19T04:42:15.027 回答