簡體   English   中英

ActionController :: RoutingError(沒有路由匹配[GET]“/assets/images/control_top.png”):在rails 3.2.8中

[英]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.

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