有一个简单的方法来渲染的Microsoft Web优化框架/脚本捆绑绝对URL? [英] Is there an easy way to render absolute URLs with Microsoft Web Optimization framework / script bundling?

查看:149
本文介绍了有一个简单的方法来渲染的Microsoft Web优化框架/脚本捆绑绝对URL?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用微软的Web优化框架来呈现一个JavaScript包,就像这样:

I'm trying to render a JavaScript bundle using Microsoft's Web Optimization framework, like this:

@Scripts.Render("~/assets/bundle.js")

和建设一小捆,像这样的:

And building a small bundle, like this:

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new ScriptBundle("~/assets/bundle.js")
        .Include(
            "~/scripts/jquery-2.1.0.min.js",
            "~/scripts/somescript.js"
        ));

    ...
}

但是,当优化上,它只是呈现一个相对URL,如下所示:

But when optimizations are on, it only renders a relative URL, like this:

<script src="/assets/bundle.js?v=mGDOiNaiTrSfcNq41OoA7A_BcN8PrXuMbfl-TE84HVY1"></script>

怎样才可以有脚本捆绑呈现绝对URL,而不是吗我无法找到一个方法来做到这一点翻翻MSDN上的文档。这就是我最终会想:

How can I have script bundling render an absolute URL instead? I couldn't find a way to do this looking through the docs on MSDN. This is what I would ultimately like:

<script src="http://my.site.com/assets/bundle.js?v=mGDOiNaiTrSfcNq41OoA7A_BcN8PrXuMbfl-TE84HVY1"></script>

这是在框架中,还是必须推出与 Script.Url

Is this in the framework, or do I have to roll a helper method with Script.Url?

推荐答案

一个简单的方法是<一个href=\"http://msdn.microsoft.com/en-us/library/system.web.optimization.scripts.renderformat(v=vs.110).aspx\"相对=nofollow> Scripts.RenderFormat :

@Scripts.RenderFormat("<script src='http://my.site.com{0}'></script>","~/assets/bundle.js")

一个办法从申请取得网址。难道似乎没有要使用多个参数与RenderFormat,所以这就是为什么它看起来有点丑:

A way to get URL from request. Couldn't seem to use multiple parameters with the RenderFormat, so that's why it looks a little ugly:

 @Scripts.RenderFormat("<script src='//" + @Request.Url.Host + "/{0}'></script>", "~/assets/bundle.js")

或更好,但集中一个函数来获取正确的路径(使用虚构的功能):

or better yet, centralize a function to get the correct path (using a fictional function):

@Scripts.RenderFormat("<script src='" + @Tools.GetRootURL() + "{0}'></script>", "~/assets/bundle.js")

另外,你不需要的.js 的软件包:

bundles.Add(new ScriptBundle("~/assets/bundle")

这篇关于有一个简单的方法来渲染的Microsoft Web优化框架/脚本捆绑绝对URL?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆