我在另一个非Rails网站上有一些JavaScript,适用于浏览器端的表格。如果我从外部站点在我的 Rails 应用程序中引用它,它工作正常:
<script type="text/javascript" src="http://10.1.10.36/sort.js"></script>
如果我把它放在资产/javascripts 文件夹中,我会收到一个错误:
Encoding::InvalidByteSequenceError in Taxes#index
Showing /home/asa/Rails/home/app/views/layouts/application.html.erb where line #8 raised:
"xA3" on UTF-8
你能指出我这个错误是什么,为什么我得到它,我该如何解决它吗?
我确实找到了一个参考,上面写着命名它 sort.js.erb 并包含以下行:
<%# encoding: utf-8 %>
但这并没有什么区别。
或者,有没有办法把这个JavaScript放在网站上并使用固定的引用?我这样做没有成功。
此文件引用属于您的
layouts/application.rb
文件或用于视图的任何布局。把它放进
<header>
部分,它将正常工作。否则,请阅读
轨道的资产管道
我偶然发现了同样的问题,并通过将 Javascript 文件转换为 utf-8 格式来解决它。以前:
$file -i 排序表.js
排序表.js:文本/HTML;字符集=ISO-8859-1
转换:
$ iconv -f iso-8859-1 -t utf-8 sorttable.js -o sort.js
删除旧文件,重命名新文件...
结果:
$ 文件 -i 排序表.js
排序表.js:文本/HTML;字符集=UTF-8
调试器控制台中不再有错误。