0

我很难在一个域上安装多个项目 Django。我想在同一个域上运行 Django-CMS 和 LFS:

  • mydomain.com (django-cms)
  • mydomain.com/store (LFS)

目前,我可以毫无问题地使用正确的 django-project 访问两个域,但是在 LFS 项目中,所有商店的链接都重定向到第一个域。例如,购物车链接重定向到mydomain.com/cart而不是mydomain.com/store/cart

我试图通过在所有 url 模式中添加“store/”来更改 url.py 文件,但它不起作用。我想我必须在 LFS 项目的 settings.py 中添加一个配置,但我不知道是什么。

你有什么想法吗?谢谢 !:)

PS:这里是我的 httpd.conf

Alias /store/static /home/ubuntu/lfs-installer/lfs_project/sitestatic/

<Directory /home/ubuntu/lfs-installer/lfs_project/sitestatic>
Order deny,allow
Allow from all
</Directory>

WSGIScriptAlias /store /home/ubuntu/lfs-installer/apache/django.wsgi


Alias /static /home/ubuntu/lfs-installer/selmyrtech/static/

<Directory /home/ubuntu/lfs-installer/selmyrtech/static>
Order deny,allow
Allow from all
</Directory>

WSGIScriptAlias / /home/ubuntu/lfs-installer/selmyrtech/apache/django.wsgi
4

1 回答 1

0

Django 在子目录中并不总是能很好地发挥作用——即使在它是域中唯一的 Django 项目的情况下也是如此。我曾认为文档建议不要这样做,但在快速搜索后我无法找到该页面

问题之一可能在这里:

WSGIScriptAlias / /home/ubuntu/lfs-installer/selmyrtech/apache/django.wsgi

看起来这个指令可能会将所有 URI 段映射/到这个特定的 WSGI 脚本,覆盖/store别名。颠倒你的脚本别名的顺序可能会也可能不会解决这个问题。

是否可以重新考虑您的 URL 约定以提供来自子域的“商店”区域,例如 store.mydomain.com/cart?

如果是这样,这可能是一个更好的支持结构,并且两个项目可以有独立的 Apache 进程和 WSGI 脚本。

另一种解决方案是查看将两个项目集成到一个 Django 项目中。我不知道您的特定用例是什么可能会阻止您走这条路,或者这可能会带来哪些独特的挑战,但如果两个项目都使用身份验证,这可能对用户特别有帮助。

于 2012-08-15T16:01:03.063 回答