我想在与网站其余部分不同的子域上提供专门的 RSS 提要。
我可以使用站点框架来使用不同的 urls.py 和 settings.py 文件 在单个 Django 实例中 .还是我需要设置两个 apache 位置,然后在 apache conf 中设置不同的 settings.py 文件。
我需要设置两个 urls.py 文件的原因是为了避免重复的内容。我不希望在 rss.example.com 上提供主站点,也不希望在 example.com 上访问专门的提要
从单个 django 实例为它们提供服务将是理想的,因为我们在内存有限的共享主机上,而且打开一个仅提供 rss 的实例似乎是一种浪费。
编辑 :我得出的结论是,使用单独的 urls.py 文件的多个实例对我来说是最简单的......但我发现这篇文章描述了如何使用单个实例来做到这一点:
http://effbot.org/zone/django-multihost.htm
解决方案:Django tupperware
我最终编写了一个框架,用于在单个 Django 实例上运行站点的多个副本。
基本思路是改掉SITE_ID
为每个请求即时设置并从数据库加载备用设置。它基于域执行此操作并使用 SITE_ID = 1
默认情况下(当它找不到任何东西时)
settings.py 文件中的所有设置都作为默认值,这些设置被存储在当前站点的数据库中的设置覆盖。
它工作得很好:) 并且它正在生产中运行 http://rootbuzz.com
最佳答案
使用股票 Django,您必须拥有一个独特的 settings.py
对于每个站点...因为 SITE_ID 在 settings.py
中定义是哪个站点处理此请求的关键。
换句话说,SITE_ID 对于您的实例是全局的,因此您需要为每个站点创建一个实例。
你可以有一个共同的urls.py
如果您愿意,因为没有什么可以阻止您使用相同的 ROOT_URLCONF
在您所有的网站 settings.py
文件...或者您可以为每个站点使用不同的文件。在这种情况下,您需要包含子 URL 以防止对任何常见 URL 重复自己。
您至少可以尝试从单个实例提供两种方法:
关于django - "sites framework"在单个 Django 实例上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1007017/