我在.NET 4.0中有一个MVC 4应用程序。我的网络托管服务提供商(网络解决方案)设置了虚拟目录,所以我不能使用默认的捆绑行为(我认为)。
在我的_Layout视图中,我有这一行:
@Scripts.Render("~/bundles/dd-d2")
在BundleConfig.cs中我有
bundles.Add(new ScriptBundle("~/bundles/dd-d2").Include(
"~/Scripts/dd-d2.js"));
当我在visual studio中运行时,一切正常。但是当我上传到我的网络托管时,找不到该文件,因为它将虚拟文件夹附加到捆绑路径前面。
而不是/bundles/dd-d2?v=BlahBlah
,我得到/ROOT_FOLDER/bundles/dd-d2?v=BlahBlah
我通过将此问题添加到_Layout文件
中的行来解决此问题@Scripts.Render(Url.Content("~/bundles/dd-d2"))
Url.Content助手将虚拟路径转换为应用程序绝对路径,然后找到我的捆绑脚本文件。
现在,我遇到的问题是,如果我对javascript文件进行了更改,它不会反映在输出的捆绑脚本文件中。即使我将其上传到我的虚拟主机,它也始终包含旧信息。这个文件缓存在某个地方吗?有没有更好的方法呢?我想通过使用捆绑来利用我的脚本文件的缩小。
如果我这样做,它确实有用
<script src="@Url.Content("~/Scripts/dd-d2.js")" type="text/javascript"></script>
但是我的剧本并没有缩小。