Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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
Padrino-Sass,Coffee-Encoding::未定义的转换器错误,从ASCII-8BIT到UTF-8_Encoding_Coffeescript_Padrino - Fatal编程技术网

Padrino-Sass,Coffee-Encoding::未定义的转换器错误,从ASCII-8BIT到UTF-8

Padrino-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

如何繁殖

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(它的工作)

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