代码之家  ›  专栏  ›  技术社区  ›  Adam Lassek

如何更改我的应用程序的javascript默认源?

  •  0
  • Adam Lassek  · 技术社区  · 15 年前

    当你打电话 javascript_include_tag :defaults 你通常会得到: prototype.js , effects.js , dragdrop.js controls.js .

    它们存储在常量中 ActionView::Helpers::AssetTagHelper 称为“javascript默认资源”。我的应用程序使用jquery,所以我想用更有用的东西替换原型引用。

    我添加了一个初始值设定项,基于jrails的源代码:

    ActionView::Helpers::AssetTagHelper::JAVASCRIPT_DEFAULT_SOURCES = %w{ jquery-1.4.min jquery-ui jquery.cookie }
    ActionView::Helpers::AssetTagHelper::reset_javascript_include_default
    

    但当我这样做的时候,我得到: warning: already initialized constant JAVASCRIPT_DEFAULT_SOURCES 启动期间。

    改变这个值的正确方法是什么?在源代码中,它在设置常量之前检查它,但很明显,这发生在它运行初始值设定项脚本之前。


    Rails3.0版本将为JS库的选择提供更大的灵活性,所以我想这是过期日期的问题。

    2 回复  |  直到 15 年前
        1
  •  0
  •   Keith Pitt    15 年前

    为什么不做这样的事呢?

    <%= javascript_include_tag "jquery-1.4.min", "jquery-ui", "jquery.cookie" %>
    

    您不需要使用“:defaults”选项。看看:

    http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html#M001713

        2
  •  0
  •   jerhinesmith    15 年前

    根据 this thread 在Ruby论坛上,你不能。不过,如果你看 here ,您可以获取一些.diff文件,这些文件至少可以让您执行以下操作:

    # environment.rb
    ActionView::Helpers::AssetTagHelper::register_javascript_expansion :monkey, "head", "body", "tail"
    ActionView::Helpers::AssetTagHelper::register_stylesheet_expansion :monkey, "head", "body", "tail"
    
    # your .erb/.haml files
    javascript_include_tag :monkey
    stylesheet_link_tag :monkey
    

    我知道这显然不能帮助你做你想做的事情,但希望它至少能帮助你朝着积极的方向前进。