【问题标题】:Selfhosted web api route to angularJS index.html自托管 web api 路由到 angularJS index.html
【发布时间】:2016-01-13 21:31:28
【问题描述】:

我使用 OWIN 来自我托管(我没有使用 IIS)我的 web api,并且我阅读了很多关于基于 asp.net web api 和 angularJS 的 web 应用程序。在大多数示例中,api 的默认路由像

HttpSelfHostConfiguration config = new HttpSelfHostConfiguration(_baseAddress);
config.Routes.MapHttpRoute(
  name: "DefaultApi",
  routeTemplate: "api/{controller}/{id}",
  defaults: new { id = RouteParameter.Optional }
);

但我不明白 angularJS 前端的 index.html 文件的路由发生在哪里?当我调用像api/person/5 这样的 api 请求时,我知道如何获取数据。但是代码的哪一部分负责将任何未指定的 api 请求路由到 angularJS 的主页?

【问题讨论】:

    标签: angularjs asp.net-web-api self-hosting


    【解决方案1】:

    使用 WebAPI 和 Index.html 的默认路由不是一个好主意。因为调用是yourapp.com/api/xxxx

    相反,因为您使用的是 IIS(我假设您没有使用 OWIN 来进行自我托管)。在 IIS 中,您可以并且应该设置默认页面。

    这样你的网址看起来就像yourapp.com,不管它是index.html,jack.html,还是test.html

    回答你的问题但是代码的哪一部分负责将任何未指定的api请求路由到angularJS的主页?

    app.config(function ($routeProvider) {
    
        $routeProvider.otherwise({ redirectTo: "/Main" });
    });
    

    使用$routeprovider.otherwise 进行重定向。如果您向 Angular 发送不可识别的路由,否则配置值会将您重定向到您的 main 在这种情况下。

    MSDN 页面将引导您在 iis 中设置默认页面

    【讨论】:

    • 我使用 OWIN 进行自托管。我将编辑我的问题以明确这一点。对不起。当我使用 IIS 时,我应该在哪里设置默认页面?这就是为什么我在这些示例中找不到任何指向 index.html 的路径。无论如何,我怎样才能用 OWIN 做到这一点?
    • 当我使用 OWIN 进行自我托管时,我指的是不使用 IIS 并使用 apache 之类的东西。
    • 我没有使用 IIS。我与 IIS 完全解耦。
    • @cpa stackoverflow.com/questions/25478222/… 那我试试这个。
    猜你喜欢
    • 2014-09-23
    • 1970-01-01
    • 2018-11-10
    • 2015-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 1970-01-01
    相关资源
    最近更新 更多