Visual Studio IIS工作正常,但是当托管在IIS 7脚本中时,会得到错误的URL



嗨,

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

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

而不是:

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

为什么这在 VS IIS 和我的主机 IIS 中有效,但在我的本地计算机 IIS 上不起作用?

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

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

  1. 切勿像以前那样对网址进行硬编码

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

我一直在无数次类似的问题中重复这一无数次,但我仍然看到人们在硬编码。

因此,如果您使用的是剃刀:

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

相关内容

  • 没有找到相关文章

最新更新