Visual Studio IIS 工作正常,但在 IIS 7 脚本中托管时获取错误的 URL?

2024-06-20

Hi,

我有一个 ASP.NET MVC 站点,我在 MasterPage 中使用以下链接

<script type="text/javascript" src="../../../Scripts/jquery-1.4.4.min.js"></script>
    <script type="text/javascript" src="../../../Scripts/jquery-ui-1.8.11.custom.min.js"></script>
    <script type="text/javascript" src="../../../Scripts/jquery.cascadingDropDown.js"></script>
    <script type="text/javascript" src="../../../Scripts/jquery.maskedinput-1.2.2.js"></script>

从 Visual Studio 2010 中的内置 IIS 和主机 (IIS7) 运行时,此功能运行良好。但是当在我自己的 IIS7 中的 Default Web Site \ MySite 下部署它时,脚本将获得如下路径:

http://localhost/Scripts/jquery.cascadingDropDown.js

代替 :

http://localhost/myPage/Scripts/jquery.cascadingDropDown.js

为什么这在 VS IIS 和我的主机 IIS 中有效,但在我的本地计算机 IIS 中无效?

除此之外,网页符文很好。


我重复 ASP.NET MVC 中的 2 条绝对基本规则:

  1. 永远不要像以前那样对 URL 进行硬编码.

  2. 在 ASP.NET MVC 应用程序中处理 url 时,请始终使用 Url 帮助程序。

我已经在无数类似的问题中重复了无数次,但我仍然看到人们进行硬编码。

因此,如果您使用 Razor:

<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-ui-1.8.11.custom.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.cascadingDropDown.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.maskedinput-1.2.2.js")"></script>

如果您使用 WebForms 视图引擎:

<script type="text/javascript" src="<%= Url.Content("~/Scripts/jquery-1.4.4.min.js") %>"></script>
<script type="text/javascript" src="<%= Url.Content("~/Scripts/jquery-ui-1.8.11.custom.min.js") %>"></script>
<script type="text/javascript" src="<%= Url.Content("~/Scripts/jquery.cascadingDropDown.js") %>"></script>
<script type="text/javascript" src="<%= Url.Content("~/Scripts/jquery.maskedinput-1.2.2.js") %>"></script>

嘿,如果您使用 ASP.NET MVC 4 (Razor 2.0),这里有一个巧妙的技巧:

<script type="text/javascript" src="~/Scripts/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="~/Scripts/jquery-ui-1.8.11.custom.min.js"></script>
<script type="text/javascript" src="~/Scripts/jquery.cascadingDropDown.js"></script>
<script type="text/javascript" src="~/Scripts/jquery.maskedinput-1.2.2.js"></script>

注意~/? WebPages 2.0 自动应用Url.Content在运行时对其进行生成正确的 url。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual Studio IIS 工作正常,但在 IIS 7 脚本中托管时获取错误的 URL? 的相关文章

随机推荐