我听说我应该使用Apache在生产环境中提供静态文件。我在理解如何做到这一点时遇到了一些问题。我的项目的静态网址为/static/
,django.contrib.admin
的静态网址为/static/admin/
。这是我服务器上的两个完全独立的目录,我很难做到这一点:
Alias /static /path/to/site.com/static
Alias /static/admin /usr/local/.../django/contrib/admin/media
因为它们重叠。
我该怎么做?我真的必须将contrib admin静态文件夹复制到我自己的文件中吗?
答案 0 :(得分:1)
首先,没有人说你必须从与其他人相同的基本路径提供管理静态文件。您可以将ADMIN_MEDIA_PREFIX
设置为您喜欢的任何内容。
但是,最简单的方法就是将静态文件夹中的符号链接添加到django / contrib / admin / media。
答案 1 :(得分:1)
常见解决方案是使用/ media /管理媒体静态文件,因此它可以在settings.py
中ADMIN_MEDIA_PREFIX = '/media/'
并在虚拟主机配置中:
Alias /media /path/to/django/contrib/admin/media/
<Location /media>
SetHandler None
</Location>
答案 2 :(得分:0)
您可以反转Alias
条目的顺序,Apache将按预期对其进行解析:
Alias /static/admin /usr/local/.../django/contrib/admin/media
Alias /static /path/to/site.com/static
这是因为当Apache加载其配置时,它会从上到下的角度存储条目。因此,它首先尝试匹配/static/admin
,然后如果URI不匹配,则会尝试匹配/static
。