【问题标题】:Scripts.Render() if not existsScripts.Render() 如果不存在
【发布时间】:2013-02-20 01:51:48
【问题描述】:

我希望仅在父视图中尚未声明此类调用时才呈现以下调用。

@Scripts.Render("~/Scripts/jQuery")

最好的方法是什么?

【问题讨论】:

  • 一般来说,你应该设计你的包,使它们没有重叠,我建议有一个用于主页和一个用于子视图的包
  • 另外,如果您正在加载与 jquery 相关的库,在大多数情况下,这些库应添加到页面末尾,因此母版页/布局是执行此操作的最佳位置。
  • 这已经在布局页面了,但是它是一个区域本地布局。它需要检测父布局是否已经定义了这些东西。我需要在运行时进行检查。简而言之,是的,我知道有解决方法,但我希望它的行为与我描述的完全一样。有没有办法开箱即用?如果需要,我可以运行自定义代码,但更喜欢使用框架。

标签: javascript asp.net asp.net-mvc-4 html-helper bundling-and-minification


【解决方案1】:

这是一种方法:

<script>
    if (!window.jQuery) {
        document.write('<script src="@BundleTable.Bundles.ResolveBundleUrl("~/Scripts/jQuery")">\x3C/script>');
    }
</script>

这与从 CDN 包含 jQuery 时使用的逻辑基本相同,然后在 CDN 交付失败时具有本地引用回退。

【讨论】:

  • 是的,这似乎是一种可能的解决方案。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-17
  • 2013-01-29
  • 2017-11-04
  • 2021-09-26
  • 2013-03-10
相关资源
最近更新 更多