Geçtiğimiz günlerde, bir AngularJS uygulamasında ngRoute
modülünü kullanırken, yolun URL'de #!
olduğunu ve daha önce sadece #
olduğunu farkettim.Açısal rotalar # içerir! url içinde yerine #
Örneğin www.webiste.com/#/login
, kodu kullanılarak bir bütün olarak baz kaldırır requireBase
devre dışı da html5Mode
etkinleştirmek gerekir www.website.com/login
için
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
ve URL değişiklikleri www.website.com/#!/login
haline gelir iyi çalışıyor ama yanıltıcıdır ve Açısal SPA URL'lerinin neye benzediği değildir.
html5Mode
'u etkinleştirmezsem, URL kodlanır ve çevreyi alamıyorum. Yani www.website.com/#/login
, www.website.com/#!/#%2Flogin
olur (Daha sonra /
, %2F
olarak kodlanır).
Bu, geliştiriciler tarafından belirli bir amaç için uygulanan bir değişiklik mi? Ne fark eder? Uygulamamın çalışmaya devam etmesi için ne gibi değişiklikler yapmam gerekiyor? Yanlış bir şey mi yapıyorum?
Github sorunu: Bu karma patlama denir https://github.com/angular/angular.js/issues/15547
kullanım sağlayan noktasında aykırı html5Mode ... o yüzden neden hiç karmaları kullanıyorsunuz? Hashprefix'in yönergelerinde, yönergelerin – charlietfl
ile ilgili yönergelerini okuduğunuzda (app.js'de olabilir), bu "$ locationProvider.hashPrefix ('!');" Gibi önek ayarlıyorsunuz. Kaldır "!" –
Ben hiçbir yere böyle bir şey ayarlamıyorum. Html5Mode'un URL'lerdeki '/' (eğik çizgi) kodlamasını ortadan kaldırmasını sağladım. –