まず、質問に答えるだけで、html ファイル内のプレーン リンクを使用できます。
<script src='bundles/mybundle' type='text/javascript' language='text/javascript'></script>
=> これにより、JavaScript バンドルがページに含まれます
このアプローチの問題点は、バンドルに含まれる *.js ファイルを変更すると、その変更がバンドルに反映されないことです。これはすべて、ASP.NETの優れた機能である「バンドルキャッシュバスティング」に関するものですが、かみそりテンプレートからのみ使用できます...明らかに、プールも再起動します(ただし、これは非常に遅く、自動化が困難です):)
この問題を回避するには、次のように独自の ASP.NET MVC コントローラーを定義します。
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);
}
}
}
そして、あなたはそれを次のように使用します:
<script src='debugbundles/mybundle' type='text/javascript' language='text/javascript'></script>
=> これで、変更を加えるたびに、バンドルが再生成されます。
バンドルのほぼすべての利点 (つまり、特にクライアントとサーバーのキャッシュ) を削除するため、これは開発中にのみ使用するように注意してください。