我正在开发Ruby on rails,并试图将一个logo.png图像放在 bootstrap 导航栏中. 因此,我在app/views/home/_header.html.erb中使用了以下代码

<nav class="navbar navbar-expand-lg bg-primary " data-bs-theme="dark"> 
  <div class="container-fluid">
   <!-- <a class="navbar-brand" href="#">Estrutecnia</a> -->
 <a class="navbar-brand" href="#">
      <img src="logo.png" alt="Estrutecnia" width="30" height="24">
    </a>


    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav me-auto mb-2 mb-lg-0">
        <li class="nav-item">
          <a class="nav-link active" aria-current="page" href="#">Home</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Link</a>
        </li>
        <li class="nav-item dropdown">
          <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
            Dropdown
          </a>
          <ul class="dropdown-menu">
            <li><a class="dropdown-item" href="#">Action</a></li>
            <li><a class="dropdown-item" href="#">Another action</a></li>
            <li><hr class="dropdown-divider"></li>
            <li><a class="dropdown-item" href="#">Something else here</a></li>
          </ul>
        </li>
        <li class="nav-item">
          <a class="nav-link disabled">Disabled</a>
        </li>
      </ul>
      <form class="d-flex" role="search">
        <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
        <button class="btn btn-outline-success" type="submit">Search</button>
      </form>
    </div>
  </div>

</nav>

The problem is that the logo doesn't appear, look at the navbar navbar not displaying logo

并显示下一个错误

Started GET "/logo.png" for 127.0.0.1 at 2023-06-02 20:05:47 -0500

ActionController::RoutingError (No route matches [GET] "/logo.png"):

我try 将logo.png文件放在根目录中,我猜根目录就是Gemfile和Readme.md文件所在的文件夹. 我预计在导航栏中会出现logo.png,但导航栏左侧会出现一个损坏的文件图标,如上图所示.

推荐答案

图像通常放在app/sets/Images目录中.

使用ActionView IMAGE_TAG辅助对象渲染视图时,Rails会自动填充图像源:

image_tag('logo.png')
# => <img src='/assets/icon.png>

这将是在Rails中处理图像的惯用方法,但当然,没有什么可以阻止您在标记中包含<image src='/assets/icon.png'>

Ruby-on-rails相关问答推荐

`heroku Open`和`heroku run rake db:Migrate`不工作(";没有这样的文件或目录";)

确定当前太平洋时区是PST还是PDT

DateTime的最小数据提交格式

Sidekiq with Rails - 控制台与 rake 任务中的不同 Sidekiq 实例

仅在两个子域间共享Rails cookies,并为所有其他子域使用单独的cookie

has_many 通过大小验证

在 Rails 6.1 升级后,作业(job)规范使用 Minitest::UnexpectedError 包装错误

Rails 连接并包含连接表中的列

在 Rails 3 中,如何在路由中使用锚点作为 ID?

在 Rails 的 ActiveRecord 中,touch 有什么用?

Rails 将 form_for 对象传递给部分

Rails(或 Ruby):Yes/No 而不是 True/False

未定义的方法 attr_accessible

具有 has_many 关联的 FactoryGirl build_stubbed 策略

Rails Activeadmin - 自定义关联 Select 框

rmagick 和 OS X Lion

如何在 Ruby 中生成随机日期?

资源和资源方法之间的区别

rails路由中资源和资源之间的区别?

如何删除特殊字符?