在没有哈希链接的情况下进行角度页面刷新

Make angular page refresh without Hash links?

本文关键字:刷新 情况下 哈希 链接      更新时间:2023-09-26

如何在没有哈希链接的情况下获得角度页面刷新?在页面刷新时,我的角度应用程序会出错并且不显示它刚刚显示的页面,所以我将html5Mode更改为false$locationProvider.html5Mode(false).hashPrefix("");),现在我可以刷新页面。但是我也在链接路径中#/了令人讨厌的前缀。

如何在能够刷新页面的同时删除 url 路径中的 #?

探索此线程:$location/在 HTML5 和哈希邦模式之间切换/链接重写

您需要确保所有链接相对于index.html都是绝对的,并且可能需要重写服务器。

服务器重写将在刷新时起作用,请尝试在服务器中添加中间件。下面是咕噜声配置 ID 示例。检查 nginx 和 grunt serve rewrite 的 https://github.com/parmod-arora/angular-url-rewrite。

middleware: function (connect) {<br>
        var middlewares = [];<br>
        middlewares.push(modRewrite([
          '!/assets|''.html|''.js|''.css|''woff|''ttf|''swf$ /index.html'
        ]));
        middlewares.push(connect.static('.tmp'));
        middlewares.push(connect().use(
          '/bower_components',
          connect.static('./bower_components')
        ));
        middlewares.push(connect.static(appConfig.app));
        //middlewares.push(require('grunt-connect-proxy/lib/utils').proxyRequest);
        return middlewares;
      }

您是否尝试过在 html 的头部部分设置 base?

<!doctype html>
<html>
<head>
    <meta charset="utf-8">  
    <base href="/">
</head>