【问题标题】:django multiple installation problemdjango多重安装问题
【发布时间】:2010-01-28 10:03:25
【问题描述】:

让 django 根据子域提供不同的设置文件和数据库。虚拟主机条目是手动添加到 apache 中的。

目前有两个具有不同数据库的子域。第一个工作正常,第二个没有显示任何 CSS/图像。

Apache的配置是as,有两个

<VirtualHost *:80>
ServerName test.domain.com
ServerAlias test.domain.com

DocumentRoot /var/www/site/

    <Location "/">
        SetHandler python-program
        PythonHandler django.core.handlers.modpython
        SetEnv DJANGO_SETTINGS_MODULE site.settings.test
        PythonDebug On
        PythonPath "['/var/www/site/'] + sys.path"
    </location>
    <location "/public/media">
        SetHandler None
    </location>
    <location "/public/admin_media">
        SetHandler None
    </location>
    <location "/static">
        SetHandler None
    </location>
 </VirtualHost>

在显示 css/images 时出现问题的子域的内容位于 /public/media 文件夹中。如果直接通过 http://test.domain.com/public/media/images/image.jpg 访问,图片就在那里。

【问题讨论】:

  • 这是一个可怕的问题。您没有显示任何配置来帮助我们调试问题。无论如何,服务资产是一个 Apache 配置问题,属于 serverfault.com。
  • Apache 配置添加
  • 请至少提供缺少的 css/图像的路径以及 apache 的配置。很难想象/猜出作者想要什么..
  • 未显示的路径是公共/媒体文件夹
  • 你使用的是 settings.py 中的 MEDIA_URL 吗?

标签: django


【解决方案1】:

1) 请注意,您加载的不是默认的“settings.py”,而是“settings/test.py”。

SetEnv DJANGO_SETTINGS_MODULE site.settings.test

所以也许应该是:

SetEnv DJANGO_SETTINGS_MODULE site.settings

SetEnv DJANGO_SETTINGS_MODULE site.settings.production

2) 无论您的设置文件是什么,请确保您有这个:

DEBUG = False
MEDIA_URL = "/public/media"
ADMIN_MEDIA_PREFIX = "/public/admin_media"

【讨论】:

    【解决方案2】:

    我建议你为两个不同的子域使用两个不同的虚拟主机。

    子域 test1.domain.com 服务器名称 test1.domain.com

    DocumentRoot /var/www/site/
    
        <Location "/">
            SetHandler python-program
            PythonHandler django.core.handlers.modpython
            SetEnv DJANGO_SETTINGS_MODULE site.settings.test
            PythonDebug On
            PythonPath "['/var/www/site/'] + sys.path"
        </location>
        <location "/public/media">
            SetHandler None
        </location>
        <location "/public/admin_media">
            SetHandler None
        </location>
        <location "/static">
            SetHandler None
        </location>
     </VirtualHost>
    

    子域 test2.domain.com 服务器名称 test2.domain.com

    DocumentRoot /var/www/site/
    
        <Location "/">
            SetHandler python-program
            PythonHandler django.core.handlers.modpython
            SetEnv DJANGO_SETTINGS_MODULE site.settings.test
            PythonDebug On
            PythonPath "['/var/www/site/'] + sys.path"
        </location>
        <location "/public/media">
            SetHandler None
        </location>
        <location "/public/admin_media">
            SetHandler None
        </location>
        <location "/static">
            SetHandler None
        </location>
     </VirtualHost>
    

    【讨论】:

      【解决方案3】:

      这是会话/cookie 问题。将 SESSION_COOKIE_DOMAIN 添加到带有 subdomain 的 settings.py 中,现在似乎可以正常工作了。

      【讨论】:

        猜你喜欢
        • 2020-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-25
        • 2011-12-20
        • 2021-03-22
        • 2011-03-25
        • 2021-03-05
        相关资源
        最近更新 更多