【问题标题】:how to make Django play well with Angular URL如何让 Django 与 Angular URL 配合得很好
【发布时间】:2016-08-18 07:18:51
【问题描述】:

在 Django 提供的 Angular 2 应用程序中,如何在重新加载页面时使 Angular 2 URL 与 Django 一起工作?

具体来说,假设 Django 提供的页面具有 url http://localhost:8000/home。该页面包含 3 个选项卡,其中一个是 Angular 应用程序。单击该选项卡会显示 Angular 应用程序,并且 URL 更改为 http://localhost:8000/home/ng_app。现在如果用 这个 url 刷新浏览器,Django 会显示 404,这是有道理的,因为 Django 应用程序中不存在http://localhost:8000/home/ng_app

那么如何让 Angular URL 工作呢? (输入 http://localhost:8000/home/ng_app 会导致 Angular 应用程序而不是 404)。谢谢!

【问题讨论】:

    标签: django angular


    【解决方案1】:

    假设您的整个应用是从 /home 提供的,您可以使用以下 url 模式:

    urlpattern('/home/.*$', views.my_angular_homepage)
    

    如果您还想在可以使用任何标准技巧来捕获 URL 的尾随部分之后重定向到所有内容的路由,然后在您的 angularJS 应用程序中执行 $location.path

    【讨论】:

      【解决方案2】:

      您应该考虑在 Angular 应用中使用 hash bangs 作为 URL。结帐this tutorial 我通过谷歌搜索发现它也使用带有刘海的网址。

      这样,Angular 应用程序的 URL 不会与您的 Django 应用程序发生冲突,并且 Angular 会为路由目的选择它

      【讨论】:

        【解决方案3】:

        使用url(r'^/home/(?!ng_root/).*$' 其中ng_root 是角度静态文件的根URL。

        查看我的博文了解更多详情https://4sw.in/blog/2016/django-angular2-tutorial/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-04-07
          • 2019-05-18
          • 2010-09-11
          • 1970-01-01
          • 2011-10-24
          • 1970-01-01
          • 1970-01-01
          • 2011-11-27
          相关资源
          最近更新 更多