jQuery 在 URL 中使用奇数个“/值”
jQuery Acting up with an odd number of "/values" in the URL
从 VS2010 将 MVC3 站点发布到服务器后,一些 jQuery 功能在我身上退出,具体取决于 URL。
Hamsandwhich.ABC.123/Whiteboard/Home/index
- 不起作用
Hamsandwhich.ABC.123/Whiteboard/Activities/Edit/11
- 作品
现在,如果我转到 URL 并在 URL 的末尾添加一个额外的斜杠,结果就会翻转。
Hamsandwhich.ABC.123/Whiteboard/Home/index/
- 有效
Hamsandwhich.ABC.123/Whiteboard/Activities/Edit/11/
- 不起作用
我想出的临时解决方法是向不工作的页面发送未使用的值。
Hamsandwhich.ABC.123/Whiteboard/Home/index/9001
- 作品
我只想知道为什么会发生这种情况,以及是否有一种方法可以解决此问题而无需向每个页面发送一个值。
<link href="@Url.Content(" ~/Content/bootstrap.min.css ")" rel="stylesheet" type="text/css" />
<link href="@Url.Content(" ~/Content/site.css ")" rel="stylesheet" type="text/css" />
<link href="@Url.Content(" ~/Content/bootstrap-responsive.min.css ")" rel="stylesheet" type="text/css" />
<link href="@Url.Content(" ~/Content/themes/base/jquery-ui.css ")" rel="stylesheet" type="text/css" />
<link href="@Url.Content(" ~/Content/datepicker.css ")" rel="stylesheet" type="text/css" />
<link href="@Url.Content(" ~/Content/datepicker3.css ")" rel="stylesheet" type="text/css" />
...
....
...
<script src="@Url.Content(" ../../Scripts/jquery-2.1.1.js ")" type="text/javascript"></script>
<script src="@Url.Content(" ../../Scripts/jquery-ui-1.11.2.js ")" type="text/javascript"></script>
<script src="@Url.Content(" ~/Scripts/bootstrap.min.js ")" type="text/javascript"></script>
<script src="@Url.Content(" ~/Scripts/site.js ")" type="text/javascript"></script>
<script src="@Url.Content(" ../../Scripts/bootstrap-datepicker.js ")" type="text/javascript"></script>
<script src="@Url.Content(" ../../Scripts/modernizr-2.8.3.js ")" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#datepicker").datepicker({
format: 'mm/dd/yyyy'
});
$("#datepicker2").datepicker({
format: 'mm/dd/yyyy'
});
$("#datepicker3").datepicker({
format: 'mm/dd/yyyy'
});
});
</script>
您需要将所有看起来像这样的链接 - ../../Scripts/jquery-2.1.1.js
更改为像大多数其他地方一样使用 tilda(“~”)语法 - ~/Scripts/jquery-2.1.1.js
。 tilda 语法呈现从应用程序根目录到该文件的路径。
当您这样引用时 - " ../../Scripts/jquery-2.1.1.js "
- 您是在告诉浏览器该文件比您所在的当前目录高 2 个目录。如果您是三个 "directories" 深度,那么该路径将是不正确的。这就是为什么额外的斜杠有时会破坏或解决您的问题。
在引用脚本文件的方式上保持一致。在你的包含中,你大部分时间都在做对。
最后一点,在你的一些参考文献中,你的双引号和文件路径之间有很多白色space。清理掉白色的 space,因为它看起来更干净,可以防止以后出现任何奇怪的问题。
从 VS2010 将 MVC3 站点发布到服务器后,一些 jQuery 功能在我身上退出,具体取决于 URL。
Hamsandwhich.ABC.123/Whiteboard/Home/index
- 不起作用
Hamsandwhich.ABC.123/Whiteboard/Activities/Edit/11
- 作品
现在,如果我转到 URL 并在 URL 的末尾添加一个额外的斜杠,结果就会翻转。
Hamsandwhich.ABC.123/Whiteboard/Home/index/
- 有效
Hamsandwhich.ABC.123/Whiteboard/Activities/Edit/11/
- 不起作用
我想出的临时解决方法是向不工作的页面发送未使用的值。
Hamsandwhich.ABC.123/Whiteboard/Home/index/9001
- 作品
我只想知道为什么会发生这种情况,以及是否有一种方法可以解决此问题而无需向每个页面发送一个值。
<link href="@Url.Content(" ~/Content/bootstrap.min.css ")" rel="stylesheet" type="text/css" />
<link href="@Url.Content(" ~/Content/site.css ")" rel="stylesheet" type="text/css" />
<link href="@Url.Content(" ~/Content/bootstrap-responsive.min.css ")" rel="stylesheet" type="text/css" />
<link href="@Url.Content(" ~/Content/themes/base/jquery-ui.css ")" rel="stylesheet" type="text/css" />
<link href="@Url.Content(" ~/Content/datepicker.css ")" rel="stylesheet" type="text/css" />
<link href="@Url.Content(" ~/Content/datepicker3.css ")" rel="stylesheet" type="text/css" />
...
....
...
<script src="@Url.Content(" ../../Scripts/jquery-2.1.1.js ")" type="text/javascript"></script>
<script src="@Url.Content(" ../../Scripts/jquery-ui-1.11.2.js ")" type="text/javascript"></script>
<script src="@Url.Content(" ~/Scripts/bootstrap.min.js ")" type="text/javascript"></script>
<script src="@Url.Content(" ~/Scripts/site.js ")" type="text/javascript"></script>
<script src="@Url.Content(" ../../Scripts/bootstrap-datepicker.js ")" type="text/javascript"></script>
<script src="@Url.Content(" ../../Scripts/modernizr-2.8.3.js ")" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#datepicker").datepicker({
format: 'mm/dd/yyyy'
});
$("#datepicker2").datepicker({
format: 'mm/dd/yyyy'
});
$("#datepicker3").datepicker({
format: 'mm/dd/yyyy'
});
});
</script>
您需要将所有看起来像这样的链接 - ../../Scripts/jquery-2.1.1.js
更改为像大多数其他地方一样使用 tilda(“~”)语法 - ~/Scripts/jquery-2.1.1.js
。 tilda 语法呈现从应用程序根目录到该文件的路径。
当您这样引用时 - " ../../Scripts/jquery-2.1.1.js "
- 您是在告诉浏览器该文件比您所在的当前目录高 2 个目录。如果您是三个 "directories" 深度,那么该路径将是不正确的。这就是为什么额外的斜杠有时会破坏或解决您的问题。
在引用脚本文件的方式上保持一致。在你的包含中,你大部分时间都在做对。
最后一点,在你的一些参考文献中,你的双引号和文件路径之间有很多白色space。清理掉白色的 space,因为它看起来更干净,可以防止以后出现任何奇怪的问题。