【问题标题】:difference between require() and //= in application.jsapplication.js 中 require() 和 //= 的区别
【发布时间】:2026-01-01 14:45:01
【问题描述】:
在 Rails 应用程序中,在 application.js 中,以 //= require 开头的行是什么意思,与普通的 require(); 有什么区别?
我是网络开发的新手,一开始我认为这与评论无关。
例如,这个:
//= require cocoon
//= require jquery_nested_form
//= require jquery3
//= require jquery_ujs
//= require jquery
【问题讨论】:
标签:
javascript
ruby-on-rails
frontend
web-deployment
【解决方案1】:
Rails 使用Asset Pipeline(Sprokets) 将所有 js 和 css 文件捆绑在一起并缩小它以提高页面加载性能。
app/assets/javascripts/application.js 称为清单文件,您在其中提到要包含的 javascript 文件以及要包含的顺序
//= require
对于 css 类似,你有 app/assets/stylesheets/application.css
/* ...
*= require_self
*= require_tree .
*/
require() 在 ruby 的上下文中是在当前文件中加载其他文件,以便它的功能可以被重用。
require 在 javascritp 上下文中是加载要在当前上下文/文件中使用的 javascript 模块。它是 CommonJS 语法。当您使用webpacker gem 时,就会出现这种情况。