publicar cli app javascript angularjs url iis

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('''');