我是新手,所以请帮忙; - )
我构建了一个小型RoR Web应用程序,我正在尝试使用twitter bootstrap.js框架。
我几乎所有的东西都可以工作但是显示了应该来的图标glyphicons-halflings-white.png或glyphicons-halflings.png。
我的文件夹结构非常简单,标准的RoR项目,我将png文件放在/ app / assets / images /下,当我查看bootstrap.css文件时,我看到:
background-image: url("../images/glyphicons-halflings-white.png");
和
background-image: url("../images/glyphicons-halflings.png");
根据我的文件夹结构应该是正确的。
在我的html代码中,我有类似的东西:
<div class="btn-group">
<button class="btn" id="addTagButton"><i class="icon-tag"></i>Add Tag</button>
<button class="btn dropdown-toggle" data-toggle="dropdown">
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</div>
我使用<i class="icon-tag"></i>
来显示标记图标(或希望看到它)
但是,没有任何工作
由于未知原因,我在文件夹上看不到任何图标。我试图看看是否可以看到png文件,如果我简单地将../images/glyphicons-halflings.png
复制到浏览器地址网址,但是,我得到“没有路由匹配[GET]”/ images/glyphicons-halflings.png“网址指向:localhost:3000 / images / glyphicons-halflings.png
我的HTML回复如下:
<!DOCTYPE html>
<html>
<head>
<link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/bootstrap-responsive.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/bootstrap.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/chosen.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/jquery-ui.css?body=1" media="all" rel="stylesheet" type="text/css" />
<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.min.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-ui.1.8.20.min.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.extentions.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
<script src="/assets/select2.js?body=1" type="text/javascript"></script>
<link href="/assets/select2.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js" type="text/javascript"></script>
<meta content="authenticity_token" name="csrf-param" />
<meta content="c+czIHCNmepmx674gKldijipFRD9348Gw+R2SAlrpow=" name="csrf-token" />
<link rel="SHORTCUT ICON" href="/images/favicon.ico">
</head>
<body>
<script src="/assets/jquery.validate.js?body=1" type="text/javascript"></script>
<script src="/assets/jit-yc.js?body=1" type="text/javascript"></script>
<script src="/assets/graphcontrol.js?body=1" type="text/javascript"></script>
<script src="/assets/excanvas.js?body=1" type="text/javascript"></script>
<!--[if IE]><script language="javascript" type="text/javascript" src="/assets/excanvas.js"></script><![endif]-->
<h1>Sandbox#hello</h1>
<div class="btn-group">
<button class="btn" id="addTagButton"><i class="icon-tag"></i>Add Tag</button>
<button class="btn dropdown-toggle" data-toggle="dropdown">
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</div>
<script src="/assets/bootstrap-dropdown.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-button.js?body=1" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$('.dropdown-toggle').dropdown();
});
</script>
</body>
</html>
我做错了吗?我是否需要强制ruby正确部署这些* .png文件?
任何建议都会有所帮助。
答案 0 :(得分:4)
我有类似的问题所以我这样做了:
<i class="icon-shopping-cart glyphw" id="cart"></i>
CSS
.glyphw{
background-image: url(/assets/glyphicons-halflings-white.png);
}
答案 1 :(得分:0)
只需使用密切维护的 bootstrap-sass gem(https://github.com/thomas-mcdonald/bootstrap-sass)来保存所有麻烦。
答案 2 :(得分:0)
@font-face {
font-family: 'FontAwesome';
src: url('fontawesome-webfont.eot?v=3.0.1');
src: url('fontawesome-webfont.eot?#iefix&v=3.0.1') format('embedded-opentype'),
url('fontawesome-webfont.woff?v=3.0.1') format('woff'),
url('fontawesome-webfont.ttf?v=3.0.1') format('truetype');
font-weight: normal;
font-style: normal;
}
只需在font-awesome.css
中正确设置字体目录即可答案 3 :(得分:0)
解决方案我用于这类问题(供应商脚本试图在/img
中查找资产,
/images
是将这些请求重定向到assets
文件夹。在routes.rb
添加:
get '/img/:name', to: redirect {|params, req| "/assets/#{params[:name]}.#{params[:format]}" }
答案 4 :(得分:-1)
我在我的项目中使用Twitter引导程序,它非常棒。获取图标的语法是:
<i class="icon icon-tag"></i>
第一个CSS类“icon
”用于制作类似图标的标记,第二个类“icon-tag
”用于显示图标图像。