疯狂破坏以覆盖图像

时间:2018-11-26 13:43:48

标签: ruby-on-rails ruby override spree deface

我是Ruby on Rails的新手,并且我正在基于狂欢宝石开发一个小型的电子商务网站。

但是我想使用狂欢界面库来更新/覆盖网站的前端部分。

Deface::Override.new(:virtual_path => 'spree/shared/_header',
:name => 'change store logo',
:replace => 'figure#logo',
:text => "<%= image_tag('/images/logo.png') %>"

这是我的代码,但是在重新加载页面后,徽标仅由单词“ Logo”代替,而不是图像本身。我的目标定位错误吗?覆盖的图像文件应该放在哪里?

这是页面的html:

    <div id="spree-header">
  <header id="header" data-hook>
    <div class="container">
      <div class="row">
        <figure id="logo" class="col-md-4 col-sm-3" data-hook>
          <%= logo %>
        </figure>
        <%= render partial: 'spree/shared/nav_bar' %>
      </div>
    </div>
  </header>
  <div class="container">
    <%= render partial: 'spree/shared/main_nav_bar' %>
  </div>
</div>

谢谢!

1 个答案:

答案 0 :(得分:0)

我知道它是如何工作的。

我需要以Ruby Assets管道为基础,因此图像的路径应位于:railsapplication / apps / assets / images / *。png,以用作污损的替代。

此外,代码应为:

    Deface:: Override.new(:virutal_path => 'spree/shared/_header', #change this at need
      :name => 'change store logo', #optional
      :replace => 'figure#logo' #id that will be replaced located at /_header
      :text => "<%= link_to image_tag('logos/logo_small.png') %>, #Ruby tag included
    )

而且应该可以正常工作。