如何确保 url 在内置 Web 服务器和 Apache 中工作相同

发布于 2024-07-13 07:45:38 字数 315 浏览 6 评论 0原文

情况是:
我在 windows xp 上有带有 mod_python 的 Apache,但我的 django 项目不在文档根目录中。
Django 项目位置是用标签定义的。 django.root 也在那里定义。
所有 url 在内置服务器中都可以正常工作,但不幸的是在 Apache 中却不行。 在某些网址中,尤其是那些不指向管理员的网址不起作用。 django.root 部分被切断。
我怎样才能避免这种情况?

一种解决方案是将 django-project 设置到 Apache 的文档根目录中。 还有其他解决方案吗?

The situation is:
I have Apache with mod_python on windows xp and my django project is not in the document root.
The Django project location is defined with the tag. The django.root ist also defined there.
All the urls work fine in the built-in server but unfortunately not in Apache. In some urls, especially the ones not pointing to the admin do not work. The django.root part gets cut off.
How can I avoid this ?

One solution could be to set the django-project into Apache's document-root. Are there other solutions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

枫林﹌晚霞¤ 2024-07-20 07:45:38

如果您在模板文件中使用 {% url %} 标签 并调用 reverse()

它的值存储在 HttpRequest - request.META['SCRIPT_NAME'] 中,您也可以在模板中使用它:

    {% if user.is_staff %}
    <li>
        <a href="{{ request.META.SCRIPT_NAME }}/admin">Administration</a>
    </li>
    {% endif %}

Django will use the django.root part correctly if you compose links in the template files with {% url %} tags and by calling reverse() in your HTTPResponseRedirects() calls.

Its value is stored in HttpRequest - request.META['SCRIPT_NAME'] and you can use it also in templates with:

    {% if user.is_staff %}
    <li>
        <a href="{{ request.META.SCRIPT_NAME }}/admin">Administration</a>
    </li>
    {% endif %}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文