Padrino-Sass,Coffee-Encoding::未定义的转换器错误,从ASCII-8BIT到UTF-8
如何繁殖 GemfilePadrino-Sass,Coffee-Encoding::未定义的转换器错误,从ASCII-8BIT到UTF-8,encoding,coffeescript,padrino,Encoding,Coffeescript,Padrino,如何繁殖 Gemfile gem 'haml' gem 'sass' gem 'coffee-script' app/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(它的工作) localh
gem 'haml'
gem 'sass'
gem 'coffee-script'
app/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(它的工作)
localhost:3000/javascripts/rus_test.js
(function() {
alert('Hello World!');
}).call(this);
public/javascripts/rus\u test.coffee(不起作用)
给出错误
编码::位于/javascripts/rus_test.js的未定义转换器错误
从ASCII-8BIT到UTF-8的“\xD0”
我尝试在config/boot.rb中设置Encoding.default的几个变体
启动初始化的一种变体
Padrino.before_load do
Encoding.default_internal = nil
# Encoding.default_external = 'ASCII-8BIT'
end
它适用于带有俄语文本的HAML,但不适用于SASS和COFFEE
我该怎么做才能修好它 删除可笑的
Encoding.default_internal=nil
并将此代码添加到monkey patch 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
我正在使用Sinatra(Padrino的基础)+为资产提供服务,并可以处理
警报“ППцццц!”代码>没有问题。文件是否正确编码为UTF-8?你能用coffee
命令编译它吗?我们都是纯咖啡。很好!Sinatra中的代码运行良好。也许Padrino需要一些神奇的评论在哪里?我使用utf-8的Sublime文本编辑器。
Padrino.before_load do
Encoding.default_internal = nil
# Encoding.default_external = 'ASCII-8BIT'
end
# 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