无法在 rails 应用中请求 uire jquery-ui,假名不会导致错误

Can't require jquery-ui in rails app, fake name doesn't cause an error

我正在尝试在我的 rails 应用程序中使用 jquery-ui-rails (运行 spree 3.0)。

$ bundle list | grep jq
  * jquery-rails (4.0.5)
  * jquery-ui-rails (5.0.5)

无论我做什么,我似乎都无法加载 jquery-ui(css 或 js 文件)。我在 app/assets/javascripts/application.js 中尝试过的事情:

//= require jquery-ui
//= require jquery-ui/menu
//= require jquery.ui.all

None 这些似乎有所作为,我什至尝试了

//= require file-that-does-not-exist

没有发现任何错误。这里发生了什么?文件是否正在加载?

这不是使用 spree 时添加资产的正确方法。 Spree 的主布局 包含application.js 文件!此处记录了包含更多资产的正确方法:https://guides.spreecommerce.com/developer/asset.html

简而言之,将 require 语句添加到 app/assets/javascripts/spree/frontend/all.js。该文件由 spree 加载。如果您也想将其添加到后端,请将其添加到 app/assets/javascripts/spree/backend/all.js。样式表如您所料进入 app/assets/stylesheets/spree/frontend/all.jsapp/assets/stylesheets/spree/backend/all.js。您可能需要添加

//= require application 

all.js 文件和

/*
 *= require application
 */

添加到 all.css 文件以使事情按预期运行,或者在 application 文件的顶部添加警告,例如:

!!!!! THIS FILE IS NOT LOADED BY SPREE. ADDING THINGS HERE DOES NOTHING !!!!!

它可能会在未来为您节省数小时的工作时间。