0

我有一个 django 应用程序,它由 www.mysite.com/mysite 下的 apache/mod_wsgi 提供

假设我重定向 url "myapp" -> myapp/urls.py

所以要从 apache 访问它,我将访问 www.mysite.com/mysite/myapp/page1
从开发服务器访问它我需要访问 www.mysite.com/myapp/page1

这也意味着绝对 URL 在两种情况下都会有所不同

那么处理这个问题的最佳方法是什么,以便应用程序在 apache 和开发服务器中以相同的方式工作?

4

1 回答 1

0
  1. 不要在代码或数据库中嵌入绝对和/或非计算 URL。他们总会回来咬你的屁股。

  2. 使用替代的 settings.py,或者在 settings.py 中有一些逻辑来调整开发/登台/生产之间的差异。我们使用 settings.py 作为生产文件,dev/staging 使用在 settings.py 中测试的 local_settings.py,如果存在,覆盖 settings.py 中的生产设置。这可以防止替代开发设置潜入暂存/生产。

  3. 为整个站点设置一个 BASE_URL 并将其用于其他所有内容。

  4. 我们更进一步,将 STATIC_MEDIA_URL 和 BIG_CONTENT_URL(用于 MP3 和 Flash 视频)作为其他内容的基本 URL。

所有这些都使我们可以使用目前合适的任何服务器。当我进行开发时,我通常让媒体来自生产服务器(它更快),但有时我正在对媒体目录进行重组,我无法在不破坏世界的情况下在生产中做到这一点。所以我只是更改我的 local_settings.py 文件以使用我的目录副本。

于 2009-11-10T20:03:12.727 回答