我尝试了许多方法将Materialize CSS添加到Rails 7中。 我需要一些帮助来将Materialize添加到Rails 7中。 我尝试使用
--css=materialize
我尝试了许多方法将Materialize CSS添加到Rails 7中。 我需要一些帮助来将Materialize添加到Rails 7中。 我尝试使用
--css=materialize
如果你想使用materialize JS的功能,比如下拉菜单、侧边栏等,这是我使用的过程。
你可以选择两种路径。第一条路涉及使用当前的materialize-sass gem,你需要遵循四个步骤。对于第二条路,你只需要走到第三步,但你将在你的Gemfile中使用我在Github上的gem分支
使用原始的gem (遵循所有步骤)
gem 'materialize-sass'
使用我分支的宝石版本(跟进第三步)
gem "materialize-sass", git: "https://github.com/Joaquinb2000/materialize-sass-rails-7.git"
config/initializers/assets.rb
文件末尾。Rails.application.config.assets.precompile += %w( materialize.js )
步骤 2. 在 config/importmap.rb
的所有内容后添加这两行代码。
pin "jquery", to: "https://code.jquery.com/jquery-3.6.3.min.js"
pin "materialize", to: "materialize.js"
第三步。 在你的app/javascript/application.js
文件末尾添加以下两行代码:
import "jquery"
import "materialize"
接下来,记得添加相应的代码来激活所需的效果。例如,如果您想要激活下拉菜单,只需在'import "materialize"'之后添加以下行:
$(".dropdown-trigger").dropdown();
步骤 4. 查找您的 gem 的安装路径。在我的情况下,我在 ubuntu wsl 中使用 rbenv,因此您可以在您的主目录"~/.rbenv" 或 "/home/#{your_username}/.rbenv" 找到它。
一旦您找到了 gem 的位置并进入其文件夹,请转到 "assets/javascripts" 并使用您最喜欢的代码编辑器编辑 materialize.js。转到第 1509 行并替换以下行:
p = $jscomp.global;e = e.split(".");for (m = 0; m < e.length - 1; m++) {
使用:
let p = $jscomp.global;e = e.split("."); if(!p) p = new Array();for (m = 0; m < e.length - 1; m++) {
(这个 materialize.js 的修复来自于 https://github.com/Dogfalo/materialize/issues/6557#issuecomment-1253883870,感谢)
最简单的方法是使用gem
gem 'materialize-sass'
gem "sassc-rails"
$ bundle install
将 app/assets/stylesheets/application.css
文件名改为 app/assets/stylesheets/application.scss
在 app/assets/stylesheets/application.scss
中添加此行代码
@import "materialize";
app/config/manifest.js
中。//= require materialize
现在你可以在你的应用程序中使用Materialize了
欲了解更多信息,请查看materialize-sass