如何使用web api发布资产

本文关键字:布资产 api web 何使用 | 更新日期: 2023-09-27 18:26:48

我正在使用MVC Web Api服务器应用程序来生成客户端数据。此外,我想将JavaScript、XAP(Silverlight)和XML文件的集合发布到我的客户端应用程序。目前,我有一个项目结构,在这个结构中,这些目录通过我的.Net实现代码混合在一起(我不喜欢),因为客户端应用程序使用URI来请求这些文件不能更改。尽管如此,我还是希望将客户端数据与服务器应用程序实现分离到不同的文件夹中。

因此,有没有一种方法可以将客户端数据存储在单独的文件夹中,例如

  • /客户端数据/JavaScript
  • /客户端数据/XAP
  • /客户端数据/XML
  • /客户端数据/

在我的项目中,同时仍然能够使用像这样的URI访问这些文件

  • /JavaScript
  • /XAP/
  • /XML/

哪些是客户端应用程序使用的URL,并且无法轻易更改。

这是我的Global.asax 的主要方法

AreaRegistration.RegisterAllAreas();
        RouteTable.Routes.MapRoute(
            name: "Default",
            url: string.Empty,
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
            namespaces: new[] { "TCMsimulator.Controllers" }
        );
        var config = new Microsoft.ApplicationServer.Http.HttpConfiguration();
        RouteTable.Routes.MapServiceRoute<ResourcesService>("resources/", config);    
        RouteTable.Routes.MapServiceRoute<PublicResourcesService>("publicresources/",config);
        RouteTable.Routes.MapServiceRoute<MonitorService>("monitor/", config);

是否有一种方法可以将文件夹重定向添加到路由表,从而将URI中的虚拟文件夹重定向到文件系统文件夹?比如可以在Apache中使用ModRewrite吗?这似乎是一个简单的问题,但我还没有在WebApi中找到解决方案。

提前感谢!

如何使用web api发布资产

如果这些目录只包含文件,而不包含Web Api生成的输出,则可能应该忽略到这些目录的路由,并确保对它们的请求在Web Api之外运行,就像IIS提供的常规静态文件(如图像)一样。

我建议使用属性路由。这更容易理解。您可以看到映射到单个资源的多个路由的示例。

http://attributerouting.net/