0

我做了如下js.erb:如何將軌道資產依賴項添加到帶有鏈輪的環境變量中?

#= require cable 

this.App = {}; 
App.cable = Cable.createConsumer('<%= Rails.application.config.web_socket_server_url %>'); 

我想鏈輪時web_socket_server_url更新爲再生資源。

我試着使用depend_on,但它只適用於文件。我也試圖加入一個初始化一個配置塊(改變時我預期重裝所有的資產,而不是隻關注一個):

Sprockets.register_dependency_resolver 'web-socket-server-url' do 
    ::Rails.application.config.web_socket_server_url 
end 

config.assets.configure do |env| 
    env.depend_on 'web-socket-server-url' 
end 

我計上心來看到這次提交鏈輪護欄後https://github.com/rails/sprockets-rails/commit/9a61447e1c34ed6d35c358935bcae4522b60b48d

但是這並沒有像我預料的那樣工作。

理想情況下,我希望能夠在我的初始化程序中註冊依賴項解析程序,然後在我的資源中添加//= depend_on 'web-socket-server-url',這樣只會重新加載資源。

作爲一種解決方法,我可能會將配置添加到HTML標記中,並在不使用ERB的情況下進入javascript,但它感覺不太好。

我怎樣才能使這項工作與鏈輪?

回答

1

當前的API是您已經使用過的。

Sprockets.register_dependency_resolver 'web-socket-server-url' do 
    ::Rails.application.config.web_socket_server_url.to_s 
end 

config.assets.configure do |env| 
    env.depend_on 'web-socket-server-url' 
end 

這會在配置發生變化時使所有緩存無效,而不是指向該文件的緩存。