有没有机会呈现预编译的javascript文件?普通文件没有问题:
def iframe_communication
render file: "/app/assets/javascripts/iframe_communication_module.js"
end
我尝试assets_path
或在视图中将javascript_include_tag
包含在内,但没有成功。
为了澄清,我不想将脚本添加到我的视图中。我尝试渲染javascript文件以进行外部访问(从其他域添加到<script>
标记中)。
更新
render file: "..."
按预期显示文件,但未编译版本assets_path "/app/assets/javascripts/iframe_communication_module.js"
返回"/app/assets/javascripts/iframe_communication_module.js"
而不是已编译资产的路径javascript_include_tag
按预期加载脚本(Not Rendering) Rails 4资产管道将所有内容编译成一个文件,是否有机会从中获取单个文件?
或者是手动编译它的更好方法?
更新2
发现this:assets_path
没有达到我的预期。它只是前缀和附加:
asset_path "application.js" # => /application.js
asset_path "application", type: :javascript # => /javascripts/application.js
答案 0 :(得分:2)
找到了一个有效的解决方案:
我不需要普通资产管道中的文件。所以添加
//= stub iframe_communication_module
到apps/assets/javascript/application.js
。
要预编译文件,请自动添加
config.assets.precompile += %w( iframe_communication_module.js )
到config\application.rb
要通过控制器添加
来访问它redirect_to ActionController::Base.helpers.javascript_path("iframe_communication_module")
到控制器。