gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 05:25:11 25 4
gpt4 key购买 nike

你好,

我有一个 ASP.NET MVC 站点,我在其中使用母版页中的以下链接

<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) 运行时工作正常。但是当在默认网站\MySite 下我自己的 IIS7 中部署它时,脚本将获得如下路径:

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 View 引擎:

<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。

关于javascript - Visual Studio IIS 工作正常,但在 IIS 7 脚本中托管时获取错误的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11154056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com