14

Nie znalazłem sposobu na usunięcie index.html z adresu URL, ponieważ jak to wygląda naprawdę brzydko.Jak usunąć index.html z adresu URL na stronie internetowej na podstawie angularjs

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

Czy istnieje sposób na usunięcie tej części, jak ten adres URL będzie tak jasne, gdzie użytkownik jest.

mydomain.com/myview1 
mydomain.com/myview2 

Tnx z góry za poświęcony czas.

Edit: ja po prostu znaleźć sposób, że może pracować jak:

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

który jest całkiem dużo lepiej niż z index.html.

Ale jeśli istnieje sposób na krótsze rozwiązanie, daj mi znać.

+3

W jaki sposób usunąłeś adres URL "index.html" z adresu URL? – Alavaros

+0

Przeczytaj edytuj Alavaros. – Pnct

+1

@Pnct jak usunąłeś index.html, o czym wspomniałeś w swojej edycji? – anvarik

Odpowiedz

3

Może to podejście może pomóc:

Dodaj $locationProvider.hashPrefix();, który usuwa index.html w adresie URL, w app.js config. Nie zapomnij dodać nowej zależności. Po tym aplikacja app.js może wyglądać podobnie:

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

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

Uwaga: nie spowoduje to usunięcia hashtagu. Możesz znaleźć swoją nową trasę pod adresem: .../app/#/someroute

2

Będziesz musiał wykonać trochę pracy po stronie serwera, aby to ustawić. html5mode powoduje, że jesteś częścią drogi, ale gdy tylko użytkownik się odświeży, odniesienie do pliku będzie błędne. Chcesz linki, które są trwałe i mogą być udostępniane, przypuszczalnie. Zasadniczo upewnij się, że każda prośba o url.com/myapp/{etc} (lub cokolwiek innego) zostanie przekierowana do index.html i niech twoja aplikacja kątowa uporządkuje trasę.

Powiązane problemy