javascript - Rails - 包含带有动态(每个请求)文件名的javascript标记?
问题描述
在里面assets/javascripts/locales
,我有一堆资产,比如:
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 锚部分
尝试
javascript_include_tag "locales/#{I18n.locale}.js"
推荐阅读
- amazon-web-services - AWS IAM 政策对托管实例应用限制——无效的 ARN?
- java - Mockito:Void 类型不抛出异常
- java - 如何获得“AviatorEvaluator”数组对象?
- angular - 使用导航附加功能传入路由器时未在 Angular 中获取数据
- javascript - 以编程方式将 div 添加到刷新表中
- python - FileNotFoundError: `[Errno 2] No such file or directory: ' 用于根据几个类显示条形图
- php - 使用 array_search() 检查值是否存在
- python - Pi UART接收额外字节
- google-colaboratory - 在 colab 上使用 CONDA 安装软件包时出错
- javascript - 从 json 树中获取所需键的值