javascript - Rails - 包含带有动态(每个请求)文件名的javascript标签?

标签 javascript ruby-on-rails ruby-on-rails-4

assets/javascripts/locales 内部,我有很多 Assets ,例如:

en-GB.js.erb
en-CA.js.erb

等等。显然,每个请求的区域设置都会改变,所以我尝试包含一个像这样的 JS 标签:

<%= javascript_include_tag 'locales/#{I18n.locale}.js' %>

但是,我最终看到了这个错误:

The asset "locales/.js" is not present in the asset pipeline.

因此,尽管我已经在同一文件的其他位置使用了 I18n.locale,但变量插入似乎无法正常工作。

我该如何实现这个目标?尽管 locales/#{I18n.locale}.js 每个请求都会发生变化,但实际资源本身确实是静态的。

最佳答案

带单引号的字符串文字不会进行插值,您会得到

<script src="/javascripts/locales/.js#{I18n.locale}.js"></script>

# 之后的部分被视为 url anchor 部分

尝试

javascript_include_tag "locales/#{I18n.locale}.js"

关于javascript - Rails - 包含带有动态(每个请求)文件名的javascript标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59664309/

相关文章:

ruby-on-rails - File.open 和 YAML.load_file 显示同一文件的不同内容

ruby-on-rails - Rails 3 Carrierwave-azure Azure::Core::Http::HTTPError OutOfRangeInput (400):请求输入之一超出范围

ruby-on-rails - 运行 rails app 不兼容库版本 rgeo proj4 时出错

使用反向引用的 javascript 模式替换不起作用

javascript - 如何让 JavaScript 函数返回 Ajax 结果?

ruby-on-rails - Rails Devise Gem,(未定义方法 `to_datetime' for nil :NilClass) when i want to recover a password

ruby-on-rails - 使用 Rspec should_receive 测试 Controller 是否正确调用对象上的方法

ruby-on-rails - 为 Sandbox paypal (NVP/SOAP API) 打开 "Negative Testing"

javascript - 点击 5 次后隐藏按钮

javascript - 显示侧边栏时,导航栏中有两种背景颜色