Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
禁用Rails中的Javascript变量重命名_Javascript_Ruby On Rails_Assets - Fatal编程技术网

禁用Rails中的Javascript变量重命名

禁用Rails中的Javascript变量重命名,javascript,ruby-on-rails,assets,Javascript,Ruby On Rails,Assets,我正在尝试在我的应用程序中使用tripleflap.js。我的观点是调用函数: <script type='text/javascript' charset='utf-8'> TwitterBird(); </script> 然后我尝试运行它,Javascript调试器告诉我: Uncaught ReferenceError: birdSprite is not defined 在/public/assets/precompiled application.

我正在尝试在我的应用程序中使用tripleflap.js。我的观点是调用函数:

<script type='text/javascript' charset='utf-8'>
    TwitterBird();
</script>
然后我尝试运行它,Javascript调试器告诉我:

Uncaught ReferenceError: birdSprite is not defined 
在/public/assets/precompiled application.js中,我看到了以下内容:

function TwitterBird()
{var e="ulmicru",t=!1,n="http://127.0.0.1/birdsprite.png";tripleflapInit()}
Rails预编译器似乎已经重命名了变量,tripleflap.js无法找到它们


是否可以在资产中禁用变量重命名?

尝试将变量定义移到函数之外,或者仅从前面删除变量定义,如下所示:

function TwitterBird() {
  twitterAccount = 'ulmicru';
  showTweet = false;
  birdSprite='http://127.0.0.1/birdsprite.png';
  tripleflapInit();
}
我在谷歌上搜索了
tripleflapInit
脚本并查看了一下。基本上,它直接在窗口上定义了一组配置变量,并希望您覆盖它们;总的来说,这是一个相当拙劣的剧本,但这不是重点

因为您是在使用
var
的函数中定义
birdSprite
,所以实际上您是在为该函数定义一个新的局部变量。即使minifier没有重命名它,定义的窗口
tripleflapInit
也不会使用它,而是查看窗口上定义的变量

我不知道为什么会出现这样的错误,即未定义
birdSprite
,但可能是编译器混淆了它,认为它未被使用而将其删除

function TwitterBird() {
  twitterAccount = 'ulmicru';
  showTweet = false;
  birdSprite='http://127.0.0.1/birdsprite.png';
  tripleflapInit();
}