Во-первых, чтобы ответить на вопрос, вы можете просто использовать обычную ссылку в своем 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>
=> теперь каждый раз, когда вы вносите изменения, пакет будет создаваться заново.
Имейте в виду, что используйте это только во время разработки, потому что вы удаляете почти все преимущества пакетов (например, кэширование клиента и сервера).
person
Christophe Blin
schedule
29.12.2015