我花了好几个小时试图为我的rails网络应用程序使用bootstrap,但是它什么也没做!我不能为它打电话给任何课程!
这是我的index.html.erb:
<div class="center">
<h1>Welcome to the User Database</h1>
</div>
<div class="jumbotron">
<h2>
This is the home page for the User Database.
</h2>
**<%= link_to "Add new entry", new_user_path, class: "btn btn-primary" %>
<%= button_to "Search", users_search_path, class: "button", :method => :get %>**
</div>
<!-- User Image -->
<div class="center">
<%= image_tag('user.jpg', :plugin => 'users') %>
</div>
<!-- Style sheet -->
<% content_for :header_tags do %>
<%= stylesheet_link_tag 'style', :plugin => 'users' %>
<% end %>
注意粗体代码...... link_to行完全忽略了bootstrap类,就像它甚至不存在一样! button_to行完全正常......
我的Gemfile包含bootstrap(是的,我在更新后运行了bundle install):
source 'https://rubygems.org'
if Gem::Version.new(Bundler::VERSION) < Gem::Version.new('1.5.0')
abort "Redmine requires Bundler 1.5.0 or higher (you're using #{Bundler::VERSION}).\nPlease update with 'gem update bundler'."
end
#Trying to get bootstrap...?
gem 'bootstrap-sass', '3.3.6'
gem "rails", "4.2.3"
gem "jquery-rails", "~> 3.1.3"
...
另外,我的css文件肯定包括bootstrap:
@import "bootstrap-sprockets";
@import "bootstrap";
/* mixins, variables, etc. */
/* universal */
body {
padding-top: 0px;
}
section {
overflow: auto;
}
...
我甚至还在application.js中包含了bootstrap:
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file. JavaScript code in this file should be added after the last require_* statement.
//
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require bootstrap-sprockets
//= require_tree .
它只是赢了工作!我唯一能想到的是,我正在构建我的rails应用程序作为Redmine的插件的一部分,并且它以某种方式搞乱一切......但我不知道如何!
更新:
我试过这样做:
<% content_for :header_tags do %>
<%= stylesheet_link_tag 'application', :plugin => 'users' %>
<% end %>
但我得到了这个神秘的错误!
ActionController::RoutingError (No route matches [GET] "/plugin_assets/users/stylesheets/bootstrap"):
我不明白这意味着什么。为什么要在stylesheets目录中查找bootstrap文件? Google从未听说过此错误消息!
答案 0 :(得分:2)
很抱歉让您失望,但如果您使用Bootstrap构建Redmine插件,那么您做错了。插件(无论哪个平台)应该提供与主机平台本身无缝的用户体验。由于Redmine没有使用Bootstrap,因此没有理由将它用于您的插件。
相反,您应该查看Redmine中的app/views
目录,并在插件中使用相同的HTML元素。你将拥有更加无缝的用户界面,减少对自定义CSS的需求...希望有所帮助。
答案 1 :(得分:1)
Redmine不支持资产管道(请参阅here,4年前的对话),这意味着您无法在此处使用sass / scss文件。首先需要获取常规的css / js文件,然后在视图中手动导入每个文件。
如果你真的想使用bootstrap,你可以先安装redmine_bootstrap_kit插件,为你提供帮助,以使它更方便(我不是这个的拥有者)。
有关信息:
每次在assets
文件夹中运行Redmine时,都会自动复制插件public/plugin_assets/your_plugin
目录。
<%= stylesheet_link_tag 'style', :plugin => 'users' %>
将查找style.css
public/plugin_assets/users/stylesheets/style.js
文件
<%= javascript_include_tag 'script', :plugin => 'users' %>
将查找script.js
public/plugin_assets/users/javascripts/script.js
文件
请注意,通常.js
和.css
个文件包含指向其他资源(图片,字体...)的链接。然后,您还需要在assets/images
/ assets/fonts
中包含这些资源,并确保.js
和.css
文件中提到的相对路径仍然有效。< / p>