Rails 的 javascript_include_tag 可以忽略之前加载的脚本吗?

2024-04-18

我正在使用这条线:

= javascript_include_tag :all, :recursive => true, :cache => true

在 Rails 应用程序的页脚中执行以下操作:

  • 递归加载public/javascripts下的所有脚本
  • 在生产中,将它们全部集中到一个文件中(:cache part)

但是,我想在头部加载这些脚本之一,因为一些内联 JS 依赖于它。

有没有一个选项javascript_include_tag排除已经加载的文件?

我知道默认情况下它不会执行此操作,因为现在我看到源 HTML 中引用了两次脚本。


javascript_include_tag是一个简单的 html 帮助器,不会跟踪天气或页面上是否已包含某些内容,所以不,没有选项,很糟糕。

相反,您可以通过以下几种方式解决您的问题:

  1. 使用类似的东西Jammit http://documentcloud.github.com/jammit/,我现在正在使用它,这绝对是一种乐趣。它将生产中的所有 javascript 打包到一个文件中,允许您压缩其中的垃圾,并且对 CSS 执行相同的操作。您可以使用配置目录中的 .yml 文件对其进行配置,使其可移植并且易于递归地包含目录中的脚本,同时仍然控制它们包含在页面上或附加到包中的顺序。 Jammit 的替代方案(恕我直言,不太好)是资产打包器 http://synthesis.sbecker.net/pages/asset_packager.

  2. Use javascript_include_tag在头脑中。并不是真正的世界末日。稍后优化。

  3. 并不是真正特定于 Rails,但使用head.js http://headjs.com/. head.js是相当新的,但允许您快速并行加载许多脚本,同时保留执行顺序,并在脚本加载后但在 dom 准备好之前触发回调。它包括许多其他优点,例如旧版浏览器中的 HTML5 友好性。这个选项很有趣,因为您可以将脚本分开,或者至少放在不同的包中,以获得最大的并行下载速度。我不确定天气或没有在串行下载一个巨大的压缩包<head>甚至在页脚处,或者使用 head.js 并行加载内容会更快,但它确实使管理这些内容变得更容易。

我都用过head.js最近还有 Jammit,我必须说,对于重型 Javascript 应用程序,它们使事情变得非常简单。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 的 javascript_include_tag 可以忽略之前加载的脚本吗? 的相关文章

随机推荐

  • signal(SIGCHLD, SIG_DFL); 是什么意思?意思是?

    我不处理SIGCHLD在我的代码中 我的进程仍然在终止后立即被删除 我希望它成为僵尸进程 如果我设置SIGCHLD to SIG DFL那么 它会起作用吗 我该如何设置SIGCHLD to SIG DFL 我希望进程成为僵尸 这样我就可以在
  • 尝试调用虚拟方法“int java.lang.String.hashCode()”

    我正在尝试使用 Volley Library 将图像从 URL 加载到 gridview 中 为此我正在关注this http www 101apps co za index php articles using volley to dow
  • 使用 javascript 的 ASP.Net MVC 3.0 Ajax.ActionLink 动态对象路由值

    0 项目 在我看来 我有一个隐藏字段 其中有一个UserID 该用户 ID 是根据操作生成的 因此事先不会知道 一旦这个隐藏字段有了值 我想使用该值作为操作链接路由值 我可以用 jquery 选择器来做到这一点吗 我的隐藏字段是
  • 我可以使用远程数据库服务器配置 ssl

    我想知道是否可以在我的应用程序和远程数据库服务器之间配置 ssl Weblogic 服务器上的 Oracle 数据库和 Web 应用程序 Thanks 是的 这是可能的 我不确定如何配置服务器 我只从客户端的角度使用它 但是可以按照链接中的
  • ejabberd 和 Erlang 安装,lager_transform 未定义

    我是 Erlang 新手 我一直在尝试在 EC2 ubuntu 机器上安装 Erlang 和 ejabberd 一切都很顺利 直到我开始编译一些外部模块ejabberd 它开始抛出错误undefined parse transform la
  • 从雅虎财经提取数据时出错

    我正在尝试通过 Pandas 从雅虎财经提取数据 我以前使用过类似的拉力 但在此之前没有遇到任何问题 import pandas as pd import numpy as np import datetime as dt from dat
  • Postgis - ST_within 没有做我想做的事。如何在空心区域中找到一个点?

    请参阅丝网印刷 我在 Postgis 中运行了一个空间查询 以返回地图上某个点所在的选区 区域 该查询使用ST within函数 其中点位于多边形内 正如您从打印中看到的 该点实际上并不在 York Outer 的多边形区域 内 尽管从技术
  • php中如何将多维关联数组转换为一维数组?

    我有一个快速查询如何将多维数组转换为一维数组 teachers array array post id gt John Doe video id gt array Government English array post id gt St
  • 在Android studio中添加外部库

    我想添加外部库https github com foursquare foursquare android oauth https github com foursquare foursquare android oauth到我的 Andr
  • 更改my.ini后MySQL服务无法启动

    我在 Windows 上运行 MySQL 8 0 我对 my ini 做了一些更改 最终找到了它 以更改字符集 愚蠢的是我没有先备份它 并且我使用了记事本 它没有多重撤消功能 现在我明白了 The MySQL Service could n
  • Kivy 中的 HTTPS 请求

    我一直在处理与通过 AWS API Gateway 托管的 API 绑定的 Kivy 应用程序中的 HTTPS 请求 首先 我从Python3迁移到2 然后从requests库迁移到kivy的URLRequest 该应用程序在我的 Linu
  • prawnto 显示新页面时不会中断的表格

    我有数量可变的表 行数可变 我想让它们一个接一个地显示 但如果当前页面不适合表 请将其放在下一页上 然后继续 我已将表格放入事务中 这样如果高度适合当前页面 我可以回滚然后打印它 但如何获取表格高度 我现在有这个代码 pdf transac
  • 将 CSV 导入组织模式属性

    我想将 CSV 导入组织模式 其他人已经询问过如何将 CSV 导入组织模式表 这不是我想做的 我需要将 CSV 导入到组织模式属性 例如 像这样的 CSV Name Tel Mobile Fax John 11111 22222 33333
  • 删除具有重复索引的 pandas 行

    如何删除具有重复索引值的行 在下面的天气数据框中 有时科学家会返回并纠正观察结果 不是通过编辑错误的行 而是通过将重复的行附加到文件末尾 我正在从网络上读取一些自动天气数据 每 5 分钟进行一次观测 并编译成每个气象站的每月文件 解析文件后
  • 使用 ffmpeg 将文件从一种格式转换为另一种格式

    我是新来的ffmpeg我试图找出如何将音频或视频文件从一种格式转换为另一种格式 我不想使用CLI 我只是想知道我是否可以使用ffmpeg作为库并调用函数将文件从一种格式转换为另一种格式 我浏览了文档并找到了函数avcodec encode
  • 如何仅在夹具级别执行“beforeEach”,而不是针对该夹具下的每个测试

    我只想在固定装置级别运行 beforeEach 而不是在该固定装置下的每个测试中运行 fixture Fixture A for Use Case1 beforeEach login test A Test 1 async t gt awa
  • 这是 Matlab 的错误吗?你有同样的问题吗? [复制]

    这个问题在这里已经有答案了 我的Matlab版本是R2012a为什么在Matlab中1 1 0 2不等于0 9 这太糟糕了 gt gt 1 1 0 2 0 9 ans 0 这不是Matlab问题 这是一个浮点问题 在 C 或任何符合以下标准
  • 使用 Google Drive API 从 Google Drive 直接下载

    我的桌面应用程序是用 java 编写的 尝试从 Google Drive 下载公共文件 据我发现 它可以通过使用文件来实现webContentLink 这是为了能够在未经用户授权的情况下下载公共文件 因此 下面的代码适用于小文件 Strin
  • 如何将两个或多个不同 csv 文件组成的数据框中的两列合并为一个新列?

    我有几个 csv 文件 全部以日期命名 对于所有文件 我想在每个文件中创建一个新列 其中包含来自其他两列放在一起的数据 然后 我想将它们组合成一个大数据框 并仅选择其中两列来保留 这是一个例子 假设我有两个数据框 a b c a b c x
  • Rails 的 javascript_include_tag 可以忽略之前加载的脚本吗?

    我正在使用这条线 javascript include tag all recursive gt true cache gt true 在 Rails 应用程序的页脚中执行以下操作 递归加载public javascripts下的所有脚本