在CSS文件中,您可以通過使用獲得的圖像資產(與指紋)的正式名稱:使用Rails 3.1資產管道的JavaScript代碼中的圖像URL?
background-image: url(image-url("rails.png"))
但你如何從一個JavaScript做同樣的文件?
在CSS文件中,您可以通過使用獲得的圖像資產(與指紋)的正式名稱:使用Rails 3.1資產管道的JavaScript代碼中的圖像URL?
background-image: url(image-url("rails.png"))
但你如何從一個JavaScript做同樣的文件?
我看到你正在使用sass helper方法。
在標準(非無禮的話),CSS,你做這樣的事情:
.class { background-image: url(<%= asset_path 'image.png' %>) }
CSS文件需要有ERB加入擴展:
file_name.css.erb
爲Javascript相同的規則適用:
file_name.js.erb
,並在文件中:
var image_path = '<%= asset_path 'image.png' %>'
Rails的asset pipeline guide是關於如何使用這些功能的信息的極好來源。
答案,簡而言之就是使用erb。 – Pablo
在Rails 4,而是採用了js.erb
鑑於我建議你堅持資產管道和URL傳遞給它一個變量,而不是使用坤或其他一些技術在討論:Ruby on Rails - Send JavaScript variable from controller to external Javascript asset file
隨着gon
:
應用/視圖/佈局/ application.html.erb:
<head>
<meta charset="utf-8"/>
<%= include_gon %>
應用程序/控制器/ application_controller.rb:
before_filter { gon.path = asset_path 'image.png' }
應用程序/資產/ Java腳本/ file.js.coffee:
alert gon.path
這種方法更快,因爲文件在啓動時預編譯一次,得到服務器的,而不是通過Rails的服務,並且在相同的HTTP請求與其餘的Js相同。
你能舉出一個在CSS和HTML中使用的例子嗎? – kzh
@kzh,我已經做到了。 – Pablo
你應該使用'background-image:image-url(「rails.png」)'。雖然與這個問題無關...... – raven