1

我正在使用 asp.net mvc 4 应用程序。我想将我的网站图像设置为通过 CDN 呈现。

MVC 中是否有任何机制来设置解析为 cdn 的图像路径?我希望 CDN 是动态的,因此我可以通过应用程序设置对其进行配置。

我有几个想法可以接受

  • 使用 Html Helper 来解析所有带有 cdn 的图像。唯一的问题是我使用 spring.net 依赖注入并且不相信直接注入静态类
  • 创建一个我放置在控制器上的属性,该属性检查我的视图中的 html 输出,使用正则表达式查找所有未解析的域并解析它们。关心这方面的表现
  • 创建一个从我的视图返回的操作结果,它与我之前的观点类似。

对此有任何想法/提示吗?

4

1 回答 1

0

使用 CDN 时存在很大的问题,尤其是在 CSS 方面。

来自这里的一些想法: http ://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

public static void RegisterBundles(BundleCollection bundles)
{
    //bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
    //            "~/Scripts/jquery-{version}.js"));

    bundles.UseCdn = true;   //enable CDN support

    //add link to jquery on the CDN
    var jqueryCdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js";

    bundles.Add(new ScriptBundle("~/bundles/jquery",
                jqueryCdnPath).Include(
                "~/Scripts/jquery-{version}.js"));

    // Code removed for clarity.
}


</footer>

        @Scripts.Render("~/bundles/jquery")

        <script type="text/javascript">
            if (typeof jQuery == 'undefined') {
                var e = document.createElement('script');
                e.src = '@Url.Content("~/Scripts/jquery-1.7.1.js")';
                e.type = 'text/javascript';
                document.getElementsByTagName("head")[0].appendChild(e);

            }
        </script> 

        @RenderSection("scripts", required: false)
    </body>
</html>

它变得复杂,但可以通过一些努力来完成。

这也是一篇非常好的文章:http: //ofps.oreilly.com/titles/9781449320317/ch_ClientOptimization.html

希望有些帮助

图像路径解析在这里处理: MVC4 StyleBundle not resolve images

在控制器中:

ViewBag.CDNPath= "http://thepathtomyddnserver";

鉴于:

<img src="@Html.Raw(@ViewBag.CDNPath)/logo1.png">

这是容易的一点吗?

于 2013-01-04T01:29:17.440 回答