如何解决为图像设置前缀绝对路径? RoR内化
我在第一次使用 Rails 内化时遇到了一个问题。我希望我的网站是法语和英语。对于图像路径,一切正常。
我将我所有的图像都存放在控制器中,像这样的散列
controller.rb
class OeuvresController < ApplicationController
def index
@oeuvres = {
abstraction: {
title: (t :abstraction),style: (t :collection_style),data: [
{
img: '../assets/57_Souvenir_dune_amie_tres_lointaine_81cmx65cm.JPG',title: "Dans la peau de Pieter Brueghel",size: '81cm x 65cm'
},...
并通过单个“智能”索引视图页面显示它们
index.html.erb
<div class="container-portrait">
<% @collection[:data].each_with_index do |tableau,index| %>
<% if index < 9 %>
<button type="button" class="btn btn-image shadow-none" style="padding: 0 !important" data-index="<%= index %>">
<div class="content-img">
<img src="<%= tableau[:img] %>" class="img-transition" alt="<%= tableau[:title] %>">
<div>
<h5><%= tableau[:title] %></h5>
<p><%= tableau[:size] %></p>
</div>
</div>
</button>
<% end %>
<% end %>
</div>
但是当我运行我的页面时,我有这个错误:
ActionController::RoutingError (No route matches [GET] "/en/assets/any_custom_image.jpg")
如您所见,i18n 正在为来自控制器的图像路径添加“/en”前缀,尽管查看了官方文档,但我无法弄清楚如何解决它。任何帮助将不胜感激:)
编辑:这是我的
application_controller.rb
class ApplicationController < ActionController::Base
around_action :switch_locale
def switch_locale(&action)
locale = params[:locale] || I18n.default_locale
I18n.with_locale(locale,&action)
end
def default_url_options
{ locale: I18n.locale }
end
end
还有我的
routes.rb
Rails.application.routes.draw do
# For details on the DSL available within this file,see https://guides.rubyonrails.org/routing.html
root to: redirect("/#{I18n.default_locale}"),as: :redirected_root
scope "(:locale)",locale: /fr|en/ do
root to: "pages#home"
get 'lart-en-question',to: 'pages#lart_en_question'
get 'contact',to: 'pages#contact'
get 'oeuvres/:id',to: 'oeuvres#index',as: 'oeuvres_collection_index'
resources :contacts,only: [:new,:create]
post 'contact',to: 'contacts#create'
end
end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。