如何重现
的Gemfile
gem 'haml'
gem 'sass'
gem 'coffee-script'
应用/ app.rb
get '/javascripts/rus_test.js' do
content_type 'text/javascript', charset: 'utf-8'
coffee :"../../public/javascripts/rus_test"
end
public / javascripts / rus_test.coffee(这是工作)
alert 'Hello World!'
本地主机:3000 / Javascript角/ rus_test.js
(function() {
alert('Hello World!');
}).call(this);
public / javascripts / rus_test.coffee(不起作用)
alert 'Привет!'
提供错误
在/javascripts/rus_test.js中编码:: UndefinedConversionError “\ xD0”从ASCII-8BIT到UTF-8
我尝试在 config / boot.rb 中设置几个Encoding.default变体。
启动初始化的变体之一
Padrino.before_load do
Encoding.default_internal = nil
# Encoding.default_external = 'ASCII-8BIT'
end
HAML的俄文版本有效,但不适用于SASS和COFFEE
我应该怎么做才能修复它?
答案 0 :(得分:2)
删除荒谬的Encoding.default_internal = nil
并将此代码添加到猴子补丁Tilt:
# this makes tilt to treat templates as properly encoded (respect Encoding.default_external)
module Tilt
class CoffeeScriptTemplate
def prepare
@data.force_encoding Encoding.default_external
if !options.key?(:bare) and !options.key?(:no_wrap)
options[:bare] = self.class.default_bare
end
end
end
end