如何将轨道资产依赖项添加到带有链轮的环境变量中?
问题描述:
我做了如下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,但它感觉不太好。
我怎样才能使这项工作与链轮?
答
当前的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
这会在配置发生变化时使所有缓存无效,而不是指向该文件的缓存。