IIS虚拟目录会创建路径问题

时间:2015-12-06 01:55:36

标签: asp.net-mvc-5 iis-8

我正在使用VS 2013和MVC5 要在IIS中托管应用程序,我使用了Properties-> Web - >服务器 - >本地IIS并单击“创建虚拟目录”。 所以这为“MyPortal”创建了一个VD

但现在我遇到了路径问题。

我的应用程序中有一个api控制器。 当我使用VS开发服务器时,它使用url:localhost:1553 / api / menuapi进行访问,数据被正确访问。

但是一旦它被托管到IIS,它就停止了工作。 检查时,它正在尝试从url获取数据,即: localhost / api / menuapi,它给出了404错误。

但实际上api很好,可以从url访问数据: 本地主机/ MyPortal / API / menuapi

为什么以及如何创建此路径问题? 以下是我如何进行api调用: 1.在javascript文件中: $ http.get('/ api / menuapi /'+ menuid).success(function(data){}); 如果有其他选择,请建议。

1 个答案:

答案 0 :(得分:1)

问题是你的javascript只有在应用程序部署在网络服务器(/)的顶层时才有效,因为你使用的是绝对网址。

如果您的javascript是在应用程序的顶层执行的,那么您可以将您的网址更改为相对网址:

@Url.Content("~/api/menuapi/")

但如果您在视图中使用javascript,更好的方法是使用以下方法检索正确的完整网址:

$http.get('@Url.Content("~/api/menuapi/")' + menuid).success(function (data) {});

像:

------------------------------------
| loc_id | item_id | size_id | qty |
------------------------------------
|   5    |  11321  |    1    |  5  |
|   5    |  11321  |    2    |  8  |
|   5    |  11321  |    3    |  4  |
|   5    |  11321  |    2    |  1  |