2017-04-09 184 views
3

我是Rails的新手。在部署到Heroku後遇到問題。控制器中指示的所有資產都不起作用。本地所有工作正常。從控制器Heroku上的Rails 5.x.x(沒有路由匹配[GET]/assets)

ActionController::RoutingError (No route matches [GET] "/assets/freelancer.min.js"): 
ActionController::RoutingError (No route matches [GET] "/assets/portfolio/submarine.png") 

資產例如:

<img src='assets/portfolio/submarine.png' class='img-responsive' alt='Submarine'> 

<!-- Theme JavaScript --> 
<script src='assets/freelancer.min.js'></script> 

有沒有人有一個想法發生了什麼事?

UPDATE:

THX您的回覆@pythia。這可以很好地處理圖像,但是我無法使用java腳本和樣式表工作。它看起來像Rails無法找到這些文件,但我檢查了JS和CSS,它們都存在。 ,我正在使用的代碼是:

爲JS:

<%= javascript_include_tag 'freelancer.min.js'%> 

對CSS:

<%= stylesheet_link_tag "bootstrap.min.css", rel: "stylesheet"%> 

錯誤日誌:

ActionController::RoutingError (No route matches [GET] "/javascripts/contact_me.js") 
ActionController::RoutingError (No route matches [GET] "/stylesheets/freelancer.min.css") 

回答

0

你必須避免使用HTML標記並用幫手代替:

<%= image_tag 'portfolio/submarine.png', class: 'img-responsive', alt: 'submarine' %> 

script_tag該腳本的助手。

1

您需要使用助手,如<%= image_tag %>,因爲Rails的資產管道預編譯您的圖像。它會「指紋」每個圖像,並在文件名的末尾添加一串字母數字字符。

所以你會想:

<%= image_tag "portfolio/submarine.png", class: "img-responsive", alt: "Submarine"%> 

如果您freelancer.min.js是在資產/ JavaScript的文件夾中,它被添加到您的application.js,應該從整個應用程序。

有一個在Rails的更多信息引導到資產管道:

+0

THX您的答覆。這可以很好地處理圖像,但是我無法使用java腳本和樣式表工作。它看起來像Rails無法找到這些文件,但我檢查了JS和CSS,它們都存在。 ,我使用的代碼是: 爲JS: <%= javascript_include_tag 'freelancer.min.js' %> 對CSS: %= stylesheet_link_tag 「bootstrap.min.css」,相對 「樣式表」 % > 錯誤日誌: ActionController :: RoutingError(沒有路由匹配[GET]「/javascripts/contact_me.js」) ActionController :: RoutingError(沒有路由匹配[GET]「/stylesheets/freelancer.min.css」) – Andrey

相關問題