簡體   English   中英

ActionController::RoutingError(沒有路由匹配 [GET] “/assets/images/logo.png”):

[英]ActionController::RoutingError (No route matches [GET] “/assets/images/logo.png”):

我在開發模式下遇到錯誤,我嘗試了所有解決方案,但沒有任何效果。 我正在使用 rails v 5.1.4 和 ruby v 2.4.1

Started GET "/assets/images/logo.png" for ::1 at 2021-03-05 01:07:59 -0700
  
ActionController::RoutingError (No route matches [GET] "/assets/images/logo.png"):
  
actionpack (5.1.5) lib/action_dispatch/middleware/debug_exceptions.rb:63:in `call'
actionpack (5.1.5) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
railties (5.1.5) lib/rails/rack/logger.rb:36:in `call_app'
railties (5.1.5) lib/rails/rack/logger.rb:24:in `block in call'
activesupport (5.1.5) lib/active_support/tagged_logging.rb:69:in `block in tagged'
activesupport (5.1.5) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (5.1.5) lib/active_support/tagged_logging.rb:69:in `tagged'
railties (5.1.5) lib/rails/rack/logger.rb:24:in `call'

這是我的文件夾結構在此處輸入圖像描述

這是查看文件 app/views/homepage/index.html.erb

<div style="background-image: url('/assets/images/logo.png')"></div>

這是 assets.rb 文件 config/initializers/assets.rb

Rails.application.config.assets.version = '1.0'
Rails.application.config.assets.paths << Rails.root.join('node_modules')
Rails.application.config.assets.paths << Rails.root.join("app", "assets", "assets","images")

這是 application.rb 文件 config/application.rb

require_relative 'boot'
require "rails"
require "active_model/railtie"
require "active_job/railtie"
require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
require "action_view/railtie"
require "action_cable/engine"
require "sprockets/railtie"
require "rails/test_unit/railtie"
Bundler.require(*Rails.groups)
module BorroupMobile
  class Application < Rails::Application
    config.load_defaults 5.1
    config.action_mailer.default_url_options = { :host => 'localhost' }
    config.session_store :cookie_store, key: '_interslice_session'
    config.middleware.use ActionDispatch::Cookies # Required for all session management
    config.middleware.use ActionDispatch::Session::CookieStore, config.session_options
    config.assets.enable=true
    config.api_only = true
    config.middleware.use ActionDispatch::Flash
    config.middleware.use(Rack::MethodOverride)
  end
end

在 production.rb 文件中,我添加了以下行 config/environments/production.rb

config.assets.compile = true
config.assets.digest = false
config.serve_static_assets = false

在 production.rb 文件中,我添加了以下行 config/environments/production.rb

config.assets.compile = true
config.assets.digest = false
config.serve_static_assets = false

我跑了 rake assets:precompile 對我沒有用

您可以使用assets_path

<div style="background-image: url('#{asset_path('logo.png')}')"></div>

<!-- asset_path('logo.png') will generate real path
=> /assets/logo-6d4bec8ad65e03a460fea1e6b84d71b.png -->

或者您可以在scss文件中使用image-url

/* assets/css/homepage.scss */
#homepage {
  background-image: image-url('logo.png');
}

你可以試試這個:

背景圖片:圖片網址('logo.png')不重復;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM