Bra*_*ton 10 asp.net bundling-and-minification scriptbundle
我正在尝试使用Microsoft的Web优化框架呈现JavaScript包,如下所示:
@Scripts.Render("~/assets/bundle.js")
Run Code Online (Sandbox Code Playgroud)
并建立一个小包,像这样:
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/assets/bundle.js")
.Include(
"~/scripts/jquery-2.1.0.min.js",
"~/scripts/somescript.js"
));
...
}
Run Code Online (Sandbox Code Playgroud)
但是当启用优化时,它只会呈现相对URL,如下所示:
<script src="/assets/bundle.js?v=mGDOiNaiTrSfcNq41OoA7A_BcN8PrXuMbfl-TE84HVY1"></script>
Run Code Online (Sandbox Code Playgroud)
如何让脚本捆绑呈现绝对URL呢? 我找不到一种方法来查看MSDN上的文档.这是我最终会喜欢的:
<script src="http://my.site.com/assets/bundle.js?v=mGDOiNaiTrSfcNq41OoA7A_BcN8PrXuMbfl-TE84HVY1"></script>
Run Code Online (Sandbox Code Playgroud)
这是在框架中,还是我必须使用辅助方法Script.Url?
Mik*_*Dev 20
一个简单的方法是使用Scripts.RenderFormat:
@Scripts.RenderFormat("<script src='http://my.site.com{0}'></script>","~/assets/bundle.js")
Run Code Online (Sandbox Code Playgroud)
一种从请求中获取URL的方法.似乎无法使用RenderFormat的多个参数,所以这就是为什么它看起来有点难看:
@Scripts.RenderFormat("<script src='//" + @Request.Url.Host + "/{0}'></script>", "~/assets/bundle.js")
Run Code Online (Sandbox Code Playgroud)
或者更好的是,集中一个函数来获得正确的路径(使用虚构的函数):
@Scripts.RenderFormat("<script src='" + @Tools.GetRootURL() + "{0}'></script>", "~/assets/bundle.js")
Run Code Online (Sandbox Code Playgroud)
此外,您不需要.js捆绑包:
bundles.Add(new ScriptBundle("~/assets/bundle")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4828 次 |
| 最近记录: |