我有一个AngularJS应用程序,目前通过.net WebApi中的自定义路径提供服务。
[HttpGet]
[Route("angularjs")]
public HttpResponseMessage Get()
{
string filePath = HttpContext.Current.Server.MapPath(baseHref + "index.html");
string htmlFile = File.ReadAllText(filePath);
// some more stuff
HttpResponseMessage response = new HttpResponseMessage
{
Content = new StringContent(htmlFile)
};
response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");
return response;
}
index.html文件包含:
<base href="/baseHref/">
然后我输入http://localhost/angularjs并且应用加载正常,最终网址为:http://localhost/angularjs/#/home,这就是我想要的。
我试图对Angular 4做同样的事情,但我对最终的网址有疑问。
路线是
[HttpGet]
[Route("angular4")]
public HttpResponseMessage Get()
{
string filePath = HttpContext.Current.Server.MapPath(baseHref4 + "index.html");
string htmlFile = File.ReadAllText(filePath);
// some more stuff
HttpResponseMessage response = new HttpResponseMessage
{
Content = new StringContent(htmlFile)
};
response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");
return response;
}
index.html文件包含:
<base href="/baseHref4/">
预期:http://localhost/angular4/#/home(响应中注入index.html的路由响应)
获取:http://localhost/baseHref4/#/home(路由解析后应用程序被重定向)
这似乎是Angular 4应用程序的问题,因为如果我在index.html中注释掉角度脚本,我将获得http://localhost/angular4/(注入的index.html而不加载应用程序)。< / p>
想要一些帮助。提前谢谢。
编辑:
可能与RouterModule有关,因为如果我设置initialNavigation: false
那么它只会在我导航后设置basehref。有没有办法改变这种行为