14

我没有找到从 url 中删除 index.html 的方法,因为这样看起来真的很难看。

mydomain.com/index.html#/myview1 
mydomain.com/index.html#/myview2

有没有办法删除那部分,就像那个 url 会很清楚用户在哪里。

mydomain.com/myview1
mydomain.com/myview2

提前 Tnx 等待您的时间。

编辑:我只是找到它可以像这样工作的方式:

mydomain.com/#/myview1
mydomain.com/#/myview2

这比使用 index.html 要好得多。

但是,如果有更短的解决方案的方法,请告诉我。

4

4 回答 4

3

也许这种方法可以帮助:

在 app.js 配置中添加$locationProvider.hashPrefix();,删除 URL 中的 index.html。不要忘记添加新的依赖项。之后,您的 app.js 可能类似于以下内容:

 angular.module('myApp', [
  'ngRoute'
]).
config(['$locationProvider', '$routeProvider', function($locationProvider, $routeProvider) {
  $locationProvider.hashPrefix(); // Removes index.html in URL

  $routeProvider.otherwise({redirectTo: '/someroute'});
}]);

请注意,这不会删除主题标签。您可以在以下位置找到您的新路线:.../app/#/someroute

于 2015-03-15T13:10:53.167 回答
2

您必须在服务器端做一些工作来设置它。html5mode 为您提供了部分帮助,但是一旦用户刷新,对文件的引用就会出错。您可能想要持久且可以共享的链接。基本上确保对 url.com/myapp/{etc} (或其他)的任何请求都被重定向到 index.html 并让您的 Angular 应用程序整理路由。

于 2015-03-15T13:15:09.830 回答
2

激活html5mode _$location

于 2013-07-17T12:57:03.550 回答
0

利用

<rewrite>
    <rules>
        <rule name="RewriteRules" stopProcessing="true">
            <match url=".*" />
            <conditions logicalGrouping="MatchAll">
                <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                <add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
          </conditions>
          <action type="Rewrite" url="/index.html" />
      </rule>
  </rules>
</rewrite>

在索引页面上

<base href="/" /> 

并在您的配置上使用

$locationProvider.html5Mode(true);

它应该工作

于 2018-10-07T22:04:51.743 回答