[英]ActionController::RoutingError (No route matches [GET] "/assets/images
[英]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.