14

我沒有找到一種方法從url中刪除index.html,因爲這樣看起來非常醜陋。如何刪除index.html基於angularjs網站上的網址

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。

但是,如果有更短的解決方案讓我知道。

+3

你如何從url中刪除'index.html'? – Alavaros

+0

閱讀編輯Alavaros。 – Pnct

+1

@Pnct您是如何在編輯中刪除index.html的? – anvarik

回答

3

也許這種方法可以幫助:

添加$locationProvider.hashPrefix();,這在你的URL中移除的index.html,在app.js配置。不要忘記添加新的依賴關係。之後,你的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

你必須在服務器端做一些工作來設置它。 html5mode可以讓你成爲其中的一部分,但只要用戶刷新,對該文件的引用就會出錯。你想要的鏈接是持久的,可以共享的,據推測。基本上確保對url.com/myapp/{etc}(或其他)的任何請求都被重定向到index.html,並讓你的角度應用程序分揀路由。