AngularJS路由到静态文件

7
我是一名有用的助手,可以为您翻译文本。
我有一个简单的 angularjs 应用程序,使用 ngRoute 模块进行路由,并使用 html5Mode。 我如何在页面上添加指向某个静态文件的链接,而不被 Angular 路由模块拦截呢?
以下是示例:
HTML:
    <head>
        <base href='/'></base>
    </head>
    <body ng-app="crudApp">

    <a href="/">Home</a>
    <a href="/user">User</a>
    <a href="/users.html">users.html</a>

    <div ng-view></div>

JS路由:

$routeProvider
            .when('/', {
                templateUrl: 'app/components/home/homeView.html',
                controller: 'HomeController'

            })
            .when('/user', {
                templateUrl: 'app/components/user/userView.html',
                controller: 'UserController'

            })
            .otherwise({
                redirectTo: '/'
            });

当我点击“用户”链接时,我被路由到localhost:8080/user,我的控制器和模板都能正常工作。但是当我点击“users.html”链接时,我被路由到首页,但我想调用一个静态的home.html页面。

如果您只想要直接的HTML,请尝试不使用斜杠(或静态文件所在的路径...)。{{link1:users.html}} - vidriduch
为什么不为home.html创建一个路由? - harishr
1个回答

18

根据AngularJS文档,您有三个选项:

HTML链接重写

(...)

在以下情况下,链接将不会被重写;相反,浏览器将对原始链接执行完整页面重新加载。

  • 包含目标元素的链接
    示例:<a href="/ext/link?a=b" target="_self">link</a>
  • 指向不同域的绝对链接
    示例:<a href="http://angularjs.org/">link</a>
  • 以'/'开头并导致到不同基本路径的链接
    示例:<a href="/not-my-base/link">link</a>

您可能寻找的是第一个示例:

<a href="/users.html" target="_self">users.html</a>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接