将LESS版本的Bootstrap-Material-Design集成到Rails项目中

时间:2015-03-30 07:09:11

标签: css ruby-on-rails twitter-bootstrap-3 less bootstrap-material-design

我使用的是bootstrap-material-design这个https://github.com/FezVrasta/bootstrap-material-design库的sass版本,但最近我注意到sass版本已不再维护。

问题我面对的是这个宝石,它不会将按钮和flash消息转换为素材样式。

这里建议的一个解决方案https://github.com/FezVrasta/bootstrap-material-design/issues/535是使用LESS版本,但我不知道如何整合此库的LESS版本。 有人已经这样做了吗?

更新

如果有人希望在不使用任何框架或服务器端语言(如Ruby,PHP等)的情况下将Bootstrap-Material-Design添加到他们的站点,只需使用HTML5,CSS3和JS。他们可以按照以下说明操作:

安装和下载bootstrap-material文件夹

bower install bootstrap-material-design

在head标记下链接bootstrap css和material css minified file

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="./bower_components/bootstrap-material-design/dist/css/material-fullpalette.min.css">

关联Javascript文件

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script src="/bower_components/bootstrap-material-design/dist/js/ripples.min.js"></script>
<script src="/bower_components/bootstrap-material-design/dist/js/material.min.js"></script>

最后,您必须在身体底部使用此脚本初始化一些材质组件

<script>
$(document).ready(function() {
  $.material.init();
});
</script>

2 个答案:

答案 0 :(得分:4)

首先安装Rails,请参阅:http://guides.rubyonrails.org/getting_started.html。然后,您可以通过在控制台中运行以下命令来创建新的Rails应用程序:

>> rails new material

上述命令将创建一个新的material目录,导航到此目录(>> cd material)。现在打开Gemfile并删除Sass包并在Less bundle(s):

#gem 'sass-rails', '~> 5.0'
gem 'less-rails' # Less
gem 'therubyracer' # Ruby

然后再次运行bundle install。现在导航到public目录(>> cd public)并运行以下命令:

>> bower install bootstrap-material-design

现在你可以创建一个名为&#34; welcome&#34;使用名为&#34; index&#34;的操作,运行以下命令:

>> bin/rails generate controller welcome index

上述命令可以创建app/views/welcome/index.html.erb文件。打开app/views/welcome/index.html.erb文件并写下下面显示的内容(根据https://github.com/FezVrasta/bootstrap-material-design/blob/master/dist/test.html):

<!-- Your site -->
<h1>You can add your site here.</h1>
<h2>To ensure that material-design theme is working, check out the buttons below.</h2>
<h3 class="text-muted">If you can see the ripple effect on clicking them, then you are good to go!</h3>
<p class="bs-component">
<a href="javascript:void(0)" class="btn btn-default">Default</a>
<a href="javascript:void(0)" class="btn btn-primary">Primary</a>
<a href="javascript:void(0)" class="btn btn-success">Success</a>
<a href="javascript:void(0)" class="btn btn-info">Info</a>
<a href="javascript:void(0)" class="btn btn-warning">Warning</a>
<a href="javascript:void(0)" class="btn btn-danger">Danger</a>
<a href="javascript:void(0)" class="btn btn-link">Link</a>
</p>
<!-- Your site ends -->

然后确保./app/views/layouts/application.html.erb文件的内容看起来如下所示:

<!DOCTYPE html>
<html>
<head>
  <title>Material</title>
  <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet">

  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <%= csrf_meta_tags %>
</head>
<body>

<%= yield %>


<!-- Your site ends -->
<script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
<script src="/bower_components/bootstrap-material-design/dist/js/ripples.min.js"></script>
<script src="/bower_components/bootstrap-material-design/dist/js/material.min.js"></script>
<script>
$(document).ready(function() {
// This command is used to initialize some elements and make them work properly
$.material.init();
});
</script>


</body>
</html>

最后将app/assets/stylesheets/application.css重命名为app/assets/stylesheets/application.css.less,并将以下内容写入其中:

@import "../../../public/bower_components/bootstrap-material-design/less/material-fullpalette.less";
@color: red;
h1 {
color: @color;
}

现在,您可以在浏览器中运行>> bin/rails server并打开http://localhost:3000/welcome/index。结果现在应该如下图所示:

enter image description here

答案 1 :(得分:0)

如果您打算使用this gem by Aufree,那么根据文档确实很简单。

将gem添加到您的gem文件中,并添加更少的rails

gem 'less-rails' 

gem 'bootstrap-material-design'

然后捆绑。

现在,转到您的application.js文件并添加

//= require bootstrap-material-design

然后继续执行application.css文件并添加

*= require bootstrap-material-design

之后重新启动服务器。应该好转