所以我有三个文件。
HTML 有:
<script type="text/javascript" src="~/Scripts/custom-notebook.js"></script>
自定义笔记本.js行给出 404 未找到:
$.getScript('Scripts/custom-notebook-services.js'); //this gives 404
1. 自定义笔记本服务.js存在。它曾经工作过,但我更改了 html 路径以包含~/
,因为我有一个虚拟应用程序(是的 MVC C#)。
2.现在我所做的一切都不起作用(是的,也搜索了周围)。
-
我试过
$.getScript('../Scripts/custom-notebook-services.js');
-
和
$.getScript('../../Scripts/custom-notebook-services.js');
-
和
$.getScript('/Scripts/custom-notebook-services.js');
没有运气:
总是给我一个带路径的 404
domain.com/Controller/Scripts/custom-notebook-services.js
。而不是正确的路径:
domain.com/Scripts/custom-notebook-services.js
将路径从 Razor 帮助程序获取到脚本中的一种方法是通过数据属性。
<body data-script-dir="@Url.Content("~/Scripts")">
现在在你的javascript中提取它,但你需要延迟你的脚本,直到DOM加载。
$(function() {
var scriptDir = $("body").attr("data-script-dir"); // "/Scripts"
});
然后,您可以将路径的其余部分附加到该字符串。
您在 IIS 上配置了良好的虚拟目录?在同一个目录中,您有包含此<script type="text/javascript" src="/Scripts/custom-notebook.js"></script>
的页面,您应该在页面的同一目录中有一个指向"脚本"的虚拟目录。