1

我正在为服务器端使用 django 开发一个 Web 应用程序。它在 android、ios 和前端都有客户端。我正在考虑使用子域来区分这些客户端的 url。差异是由于不同客户端对 url 的响应不同。我希望能够使用android.example.comios.example.com ...等子域。我的子域是固定的。

你能帮忙看看我应该采取什么方法来实现这一目标。我读过的一些选项是

  • 使用相同的数据库托管两个不同的项目。(对我来说看起来不错,但可能不是最佳的)
  • 使用站点框架在同一实例上托管。(不确定此选项有多好)
  • 使用虚拟主机托管(真的无法理解如何实现这一点)。
  • 使用子域中间件,如许多答案和一些 Django Snippets 中所述。

请帮助我最好的选择,如果可能的话,请提供一些关于如何实现它的教程的链接。谢谢。

4

1 回答 1

1

“使用站点框架”在某种程度上与使用相同的数据库托管两个项目相同。如果您使用站点框架,您将为每个共享相同代码库和数据库的子域拥有单独的实例,但首先必须在一个设置上有所不同,即SITE_ID.

如果您能够运行多个实例,这肯定有一些优势:

  • 您不需要通过中间件进行额外处理
  • 您可以轻松地为每个站点选择不同的设置,例如。不同的模板路径,使用不同的中间件等,如有必要,甚至可以为每个项目自定义 url
  • 您已经在进行某种负载平衡,因为您将请求定向到单独的实例,而且如果一个站点崩溃,它也不应该影响其他站点

如果您只能运行一个实例,我想您唯一的选择是使用中间件之类的东西,例如。django-mobile那么也许值得一看,因为它为您提供了一些很好的工具集来确定客户端的类型等......

但除此之外,在 SEO 方面,拥有具有相同内容的不同域可能并不总是最佳实践。

于 2013-06-15T18:03:15.370 回答