【问题标题】:Rails: Not requiring js files to load on homepageRails:不需要在主页上加载 js 文件
【发布时间】:2018-03-20 02:08:22
【问题描述】:

我有一个 Rails 应用程序,主页主要是一个带有一些 jquery 的静态页面。用户登录后,就会使用其他 javascript 文件。

但是,当我加载主页时,我可以看到正在加载所有 js 文件。

有没有办法不加载它们?我是否应该从application.js 中删除//= require_tree . 并仅在其他页面需要它们时才以某种方式加载它们?我想这应该会改善加载时间和 Google pagespeed 洞察力。

谢谢!

【问题讨论】:

    标签: ruby-on-rails performance


    【解决方案1】:

    删除 //= require_tree . 将停止加载树中的所有 js。但是,我们不知道“主页”是什么,或者您的应用程序的其余部分需要 js 来做什么。如果您有一个控制器端点,即HomeController#index,您可能只想为该控制器/操作使用不同的布局,并从该布局中省略//= require_tree。创建一个单独的布局文件,例如你可以将application.html.erb复制到views/layouts/home.html.erb并省略该行

    <%= javascript_include_tag 'application' %>
    

    然后在控制器中是这样的:

    class HomeController < ApplicationController
      layout 'home'
    end
    

    【讨论】:

    • 我设法做到了,它在其他页面上造成了一些混乱,但我可以从这里开始工作。谢谢!
    • 为什么会弄得一团糟?建议仅对该控制器操作使用单独的布局,这样它就不会影响在任何其他控制器操作上加载 js / 资产。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    相关资源
    最近更新 更多