[英]ActionController::RoutingError (No route matches [GET] “/assets/images/logo.png”):
[英]ActionController::RoutingError (No route matches [GET] “/assets/images/control_top.png”): in rails 3.2.8
背景圖片未在我的視圖頁面中上傳。顯示此錯誤。
ActionController :: RoutingError(沒有路由匹配[GET]“/assets/images/control_top.png”)
我該怎么做才能解決這個問題?
在生產環境中,Rails不負責提供靜態資產。 因此,您收到此錯誤。
這由應用程序中config / environment / production.rb中的此設置控制:
config.serve_static_assets = false
你可以設置為真
或試試這個
rake assets:precompile
命令(編譯和復制圖像,css和js從app / assets到public /。
如果你升級到Rails的新版本(Rails 4和Rails 3.2.16),你突然開始看到這個錯誤,你的樣式表可能指向非指紋,非緩存版本文件。 如果您正在使用資產管道,為了利用它,您需要使用指向文檔的指紋緩存版本的新助手。 為此,您需要在您的css文件中嵌入erb,或者使用sass。
不正確(使用sass):
.class
background: url('asset.png') no-repeat
正確(使用sass):
.class
background: image-url('asset.png') no-repeat
有關詳細信息,請參閱此處: http : //guides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets
可能會幫助別人,我嘗試了所有的答案,忘記了最基本的事情。 清除瀏覽器緩存,一旦完成我很高興去:)
你必須運行這個命令
rake assets:precompile
我一直在使用資產管道,但是必須更改我使用的硬編碼網址(對於我的開發環境):
我更新了我的/config/application.rb以使用資產管道:
config.assets.enabled = true
我將所有圖片網址都更改為“/assets/image_without_old_image_directory_name.jpg”
所以例如我的圖像曾經在/public/images/xxx.jpg中。 我把它們移到/app/assets/images/xxx.jpg。 我將img src從/images/xxx.jpg更改為/assets/xxx.jpg
我最終不需要進行資產預編譯,只是刪除/ public和/ tmp中資產管道的所有可見方面,它只是起作用(用於開發)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.