Angular 4 App通过.NET WebAPI提供服务 - URL变得混乱

时间:2017-08-22 13:35:30

标签: angular asp.net-web-api2

我有一个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。有没有办法改变这种行为

0 个答案:

没有答案