1

我在 .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>

但是我的脚本没有被缩小。

4

0 回答 0