我没有找到从网址中删除index.html的方法,因为这样看起来真的很难看。
mydomain.com/index.html#/myview1
mydomain.com/index.html#/myview2
有没有办法删除该部分,就像该网址在用户所在的地方一样清晰。
mydomain.com/myview1
mydomain.com/myview2
提前Tnx。
编辑: 我只是觉得它可以像以下一样工作:
mydomain.com/#/myview1
mydomain.com/#/myview2
与index.html相比要好得多。
但是,如果有更短的解决方案让我知道。
答案 0 :(得分:2)
激活$location
答案 1 :(得分:2)
也许这种方法可以提供帮助:
在app.js配置中添加$locationProvider.hashPrefix();
,删除您网址中的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
答案 2 :(得分:2)
你必须在服务器端做一些工作来设置它。 html5mode让你成为一部分,但是一旦用户刷新,对文件的引用就会出错。您希望链接具有持久性并且可以共享。基本上要确保任何对url.com/myapp/{etc}(或其他)的请求都被重定向到index.html,并让你的角度应用程序整理路由。
答案 3 :(得分: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);
应该可以