【发布时间】:2014-06-27 06:24:44
【问题描述】:
我想从控制器渲染一个 .js.coffee 视图,其中包含来自 lib/assets/javascripts 目录的另一个 js 文件:
#= require doc_ready
为什么视图由控制器而不是静态资源呈现?
因为我想通过绝对 url 引用文件,所以不会改变。 Rails 4.0 只编译带有像 embed-dc589fbef3832d9c38a4fbbc4b021f59.js 这样的摘要的资产,并且我想使用相同的 url(并且可能根据时间使缓存文件过期),即使我对脚本进行了更改。
为什么是绝对网址?
因为我想在另一个网站外部使用脚本,我给那个网站站长的代码不能改变。
我为什么要在资产中包含另一个 js?
- 保持代码干燥
- 需要一个模拟 jquery 就绪事件的simple library,用于在包含脚本的页面上创建小部件。
我是否可以通过制作一个呈现.js.coffee 视图的控制器操作来实现这一点,该视图从库中编译并包含其他所需的 js 文件,就像 sprocket 在编译资产时所做的那样?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 coffeescript asset-pipeline sprockets