Twitter引导图标没有显示 - 我做错了什么?

时间:2012-09-19 04:36:15

标签: ruby-on-rails twitter-bootstrap icons

我是新手,所以请帮忙; - )

我构建了一个小型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文件?

任何建议都会有所帮助。

5 个答案:

答案 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”用于显示图标图像。