저는이 문제에 대해 지금까지 연구 해왔다. 유사한 몇 가지 stackoverflow 토론을 들러 왔지만 아무도이 질문에 만족하지 못했습니다. . angularjs가 이것을 할 수있는 방법이 있는지 확실하지 않지만, angularjs SPA 응용 프로그램을 작성할 때 이것을 수행 할 수있는 방법이 있다고 확신합니다. 여기 내 상황이 다가옵니다.AngularJs SPA에서 내 URL에서 ".html"을 제거하려면 어떻게합니까?
기존 ASP.NET MVC 기반 응용 프로그램에 대한 AngularJs 프런트 엔드를 작성하고 있습니다. 현재 응용 프로그램의 URL이
https://domain.com/login
https://domain.com/profile
https://domain.com/settings
모습 등
는나의 새로운 프론트 엔드 버전은
내가 들이게 제거해야, 내가 함께 필요https://domain.com/index.html/login
https://domain.com/index.html/profile
https://domain.com/index.html/settings
문제가 읽고 새로운 URL에서. 이것이 내 첫 번째 장애물이다. 나중에해야 할 일은 URL이 읽는 방식에 따라 다릅니다. ASP.NET MVC에서 제공하는 형식으로 읽어야합니다. URL에 .html 파일 확장자가없는 URL.
"angularjs url remove html and #!"이라는 키워드를 사용하여 Google 검색을 시도했습니다. 내가 할
상단이 결과는 내 상황을 해결하는 데 도움이 조용 어느 것도
Removing the fragment identifier from AngularJS urls (# symbol)
How to remove index.html from url on website based on angularjs
및
있습니다.내 NG 뷰가있는 본질적으로이 페이지 내 SPA 아키텍처를 구동하는 경우에 Index.html이기 때문에 "
될 것이라고이 작업을 수행하는 더 좋은 방법이없는 경우 내가 고려하고 해결 방법이 있으므로,이 내 IIS에 넣고 Index.html을 기본 문서로 설정할 수 있습니다. "이 기능은 내가 원했던 (URL의".html "을 표시하지 않음) 특정 정도까지 달성하는 데 도움이됩니다. 예를 들어 (로컬로 작업 할 때) http://localhost
으로 이동하면 URL에 파일 이름이 표시되지 않고 index.html이 열리고 angularJs 라우팅은 해당 URL을 새로 고치거나 복사하지 않는 한 계속 작동합니다 (index.html)에서 404 오류가 발생하는 경우 ($ locationProvider.html5Mode (true)를 사용하여 #을 제거 할 때) 오류가 발생합니다.
URL을 가진 사용자가 응용 프로그램의 특정 부분에 액세스하는 데 필요한 전자 메일을 보낼 때 반드시 거기에 index.html을 포함시켜야하기 때문에 이것은 이상적인 솔루션은 아닙니다 (우리는 원하지 않습니다)
도움을 주시면 매우 감사하겠습니다. 감사.
감사 Karaxuna. 불행히도 이것은 백엔드를위한 MVC WebApi 기반 REST 서비스를 사용하는 새로운 애플리케이션 인 angularjs에 의해 구동되는 순전히 프론트 엔드 프레임 워크입니다. '보기를 반환하는 서버 측 코드가 없습니다 (우리가 MVC 웹 응용 프로그램 또는 제안한 것처럼) – Suri
정적 파일 호스팅 서버가 있습니까? 아니면 ftp입니까? 내가 말한대로 요청을 처리해야합니다. 다른 방법은 없습니다 (내가 아는 한) – karaxuna
angularjs에서 html5 모드를 사용하는 경우 더 복잡한 라우팅이 필요합니다 – karaxuna