javascript - cli - Fuerza angular un signo de exclamación no deseado en url
publish angular 2 app iis (2)
Cuando hago clic en esto: <a href="#/home">home</a>
la url es localhost/Sites/App/#!/#%2Fhome
Cuando hago clic en esto: <a href="#!/home">home</a>
la url es localhost/Sites/App/#!/home
Pero esto solo funciona en mi computadora, para mis compañeros de trabajo es todo lo contrario, ¡los enlaces no funcionan si los hay !
en la url.
Entiendo las mejores prácticas de SEO, pero no tenemos un sitio web público, necesitamos tener un sitio web que funcione sin un signo de admiración en la url.
Entiendo que /
en la url están codificados porque angular creo que esto no es un separador de ruta, pero ¿por qué en mi única computadora? Tenemos el mismo código
Usamos IIS o IIS express, Chrome o IE, no hay diferencias. Cuando funciona para mí, no funciona para todos los demás.
En las llamadas a las redes del navegador, podemos ver que no hay llamadas al servidor entre el clic en el enlace y la generación de la URL incorrecta.
Esta es la configuración del módulo:
angular.module(''paper.app'', [ ''ngMaterial''
, ''ngMessages''
, ''ngRoute''
, ...])
.config(function ($routeProvider, $mdThemingProvider, $mdIconProvider, $locationProvider, $mdDateLocaleProvider, contentUrl, contentSvg) {
$routeProvider
.when("/", {
templateUrl: contentUrl + ''view-home/html/home.html'',
controller: ''HomeController'',
controllerAs: ''homeCtrl''
})
.otherwise({
redirectTo: ''/''
});
$locationProvider.html5Mode(false);
...
});
Este es el bower.json:
{
"name": "...",
"version": "1.0.0",
"authors": [
"..."
],
"ignore": [
"node_modules",
"bower_components"
],
"description": "",
"main": "",
"homepage": "",
"dependencies": {
"angular": "^1.5.7",
"angular-material": "^1.0.9",
"angular-route": "^1.5.7",
"angular-material-data-table": "^0.10.9",
"moment": "^2.14.1"
}
}
// Configuración del lado del cliente para URL bonita // Eliminar # de la URL
$locationProvider.html5Mode(true);
y agregue esto a su index.html <base href="/"></base>
Lo resolví añadiendo esto:
$locationProvider.hashPrefix('''');