Rails 3.1资产管道和可嵌入的javascript小部件:js应该在哪里生活?

时间:2011-10-11 05:20:51

标签: ruby-on-rails ruby-on-rails-3.1 asset-pipeline

我正在升级rails 2.3.9应用程序,我有一个名为widget.js的文件,它位于/public/javascripts/widget.js

用户可以将这个javascript小部件嵌入到他们自己的网站上,如下所示:

<script src='http://example.com/javascripts/widget.js' type='text/javascript'></script>
<script>
  new Widget({user_id: 1234});
</script>

据我了解,使用Rails 3.1 assets/下的所有内容都在生产中进行指纹识别,因此widget.js将具有widget-XXXYYYZZZ.js等文件名,并且每次更改文件时都会更改。这意味着无法为用户提供此widget.js文件的可嵌入网址,因为它会发生变化。

如何在rails 3.1上完成?

2 个答案:

答案 0 :(得分:3)

您可以将脚本保留在public/javascripts/widget.js中,然后从/javascripts/widget.js投放。资产管道是可选的,您不必将它用于所有事情(或任何事情)。

答案 1 :(得分:0)

您可以通过添加

来禁用指纹识别
config.assets.digest = false  

在config / application.rb或其中一个config / environments / *文件中。