【问题标题】:URL hash-bang (#!/) prefix instead of simple hash (#/) in Angular 1.6URL hash-bang (#!/) 前缀而不是 Angular 1.6 中的简单哈希 (#/)
【发布时间】:2017-05-04 17:07:10
【问题描述】:

自从我上次处理我的项目以来,我在 AngularJS 项目中的 URL 已从 localhost:3000/admin#/ 更改为 localhost:3000/admin#!/...

网上没有找到,有人知道这是什么吗?

【问题讨论】:

    标签: javascript angularjs url hashbang angularjs-1.6


    【解决方案1】:

    在 Angular 1.6.0 中,默认的 hashPrefix 已更改为 !。 请参阅related commitchangelog entry

    【讨论】:

      【解决方案2】:

      它是 AngularJS 1.6 的新功能,它添加了一个新的哈希前缀。

      由于aa077e8,默认哈希前缀用于$location hash-bang URL 已从空字符串 ('') 更改为 bang ('!')。如果你的 应用程序不使用 HTML5 模式或在浏览器上运行 不支持 HTML5 模式,并且你没有指定你自己的 hash-prefix 然后客户端 URL 现在将包含 ! 前缀。为了 例如,URL 将变为而不是 mydomain.com/#/a/b/c mydomain.com/#!/a/b/c.

      Source here 了解更多信息。


      如果您想删除此前缀,请将此代码添加到您的配置中:

      appModule.config(['$locationProvider', function($locationProvider) {
        $locationProvider.hashPrefix('');
      }]);
      

      【讨论】:

        【解决方案3】:

        每个人都建议删除前缀,但您也可以简单地将 ! 添加到客户端 URL(如果不使用 HTML5 模式,如果您在这里,您可能会这样做)。

        因此,在您的 客户端 文件中,像这样更新 URL:

        #/foo/bar > #!/foo/bar

        【讨论】:

        • 如何读取默认前缀,以便在需要时使用一些智能代码将此前缀添加到 URL?
        猜你喜欢
        • 2018-12-10
        • 1970-01-01
        • 2020-11-28
        • 2017-12-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-05
        • 1970-01-01
        • 2018-07-04
        相关资源
        最近更新 更多