首先,只回答這個問題,你可以使用一個簡單的鏈接在HTML文件中
<script src='bundles/mybundle' type='text/javascript' language='text/javascript'></script>
=>將包括你的JavaScript捆綁到網頁
的問題,你將有使用這種方法是,如果您修改包中包含的* .js文件,修改將不會顯示在包中。 這是關於「bundle cache busting」的所有內容,ASP.NET的一個很好的功能,但只能用於剃刀模板... 顯然,您也可以重新啓動池(但這很慢且很難自動化):)
要解決這個問題,你可以用下面的
using System.Linq;
using System.Web.Mvc;
using System.Web.Optimization;
namespace Controllers
{
public class DebugBundlesController : Controller
{
// GET: debugbundles/mybundle
public ActionResult Mybundle()
{
return InlineBundleJavaScript("~/bundles/mybundle");
}
private ActionResult InlineBundleJavaScript(string bundlePath)
{
//see https://blog.mariusschulz.com/2015/10/25/inlining-css-and-javascript-bundles-with-asp-net-mvc
var bundleContext = new BundleContext(HttpContext, BundleTable.Bundles, "~/bundles");
var bundle = BundleTable.Bundles.Single(b => b.Path == bundlePath);
var js = bundle.GenerateBundleResponse(bundleContext).Content;
return JavaScript(js);
}
}
}
定義自己的ASP.NET MVC控制器和您使用,如:
<script src='debugbundles/mybundle' type='text/javascript' language='text/javascript'></script>
=>現在,每次你做一個變化,捆綁將會重新生成特德。
注意,因爲你刪除束幾乎所有的好處只有在開發過程中使用這個(即特定的客戶端和服務器緩存)
所以你使用普通的HTML(無asp.net-MVC),讓你的數據從web api? – shenku
@shenku - 在原來的帖子中澄清 –
@GeorgeR你找到一個合適的解決方案嗎?我處於相同的情況,並且我無法處理捆綁刷新(即,當我在js文件中進行更改並重建項目時,捆綁不會刷新) –