在 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/