gpt4 book ai didi

javascript - Ruby On Rails - 包含 CSS 和 JS 的最佳方式

转载 作者:行者123 更新时间:2023-11-28 12:14:01 24 4
gpt4 key购买 nike

我是 Ruby on Rails 的新手,我正在寻找为特殊 Controller 和方法包含 CSS/JS 库的正确方法,以避免无用的请求。

现在我使用这种“丑陋”的方式:

- # In a layout
- # IndustryManager::index -> We want load jquery toggles
- if action_name == "index" and controller_name == "industry_manager"
= javascript_include_tag "jquery-toggles/js/Toggles"
= javascript_include_tag "jquery-toggles/js/wrap"
= stylesheet_link_tag "jquery-toggles/css/toggles-full"

最佳答案

一些比您正在做的更干净的选项:

1) 为您需要的每种 css/js 组合准备一个布局,并在操作中指定适当的布局。只有当您有一组将使用相同的 css/js 的操作时,这才真正有意义,否则您将每个操作都有一个布局,这是一团糟。

2) 这与您正在做的几乎相同,但可重用性更高——在您的操作中设置一个变量,例如 @include_toggles = true 然后包含“jquery-toggles "仅当该变量为真时。然后,您可以在其他需要 jquery-toggles 的操作中重用该变量,而无需检查特定的操作和 Controller 名称。

3) 如果每个 Action 都有自己的不与其他 Action 共享的 css/js,您可以将文件组织在一个具有 Action 名称的目录中。然后您可以按照此处所述将所有文件包含在该目录中 https://stackoverflow.com/a/8902949/1786750 ,在路径中插入当前操作的名称,以便您仅获取当前操作所需的文件。所以对于索引:

<%= javascript_include_tag Dir[Rails.root.join("public/javascripts/views/#{action_name}/*.js")].map { |s| s.sub(Rails.root.join("public/javascripts/").to_s, "") } %>

(该代码是从上面的答案中删除的,我只是添加了 #{action_name} 来说明这个概念。)

希望对您有所帮助。可能还有更好的选择,但以上至少是简单且相对干净的。

关于javascript - Ruby On Rails - 包含 CSS 和 JS 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25596712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com