2

Passengerを使用してRuby on Railsアプリケーションを実行する際に問題があります。私のアプリケーションは/ Users/Glutexo /Práce/ Bytek/Bytekディレクトリにあります。このディレクトリには非ASCII文字が入っています(á)。それを別のディレクトリにシンボリックリンクしても、/Library/WebServer/Documents/Bytekのすべての文字がUS-ASCIIである場合、問題はまだ存在します。アプリケーションパスに非ASCII文字がある場合、Ruby on RailsアプリケーションはPassengerを使用しません。

しかし、/ Users/Glutexo/rails/pokusのようなすべてのUS-ASCIIパスに別のRailsアプリケーションを物理的に作成すると、動作します。アプリケーションはPassengerで正常に起動して実行されます。

非ASCIIのパスに存在するRailsアプリケーションを実行しようとしたとき、私は取得エラーページには、次の言葉:

エラーメッセージ:

無効なバイトシーケンスUS-ASCIIで

Exceptionクラス:

と、ArgumentError

バックトレース:

0 | /Users/Glutexo/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/pathname.rb | 45 |

`=〜」で述べたpathname.rbの行は次の関数である:

# chop_basename(path) -> [pre-basename, basename] or nil 
def chop_basename(path) 
    base = File.basename(path) 
    if /\A#{SEPARATOR_PAT}?\z/o =~ base # This is the line no. 45 
    return nil 
    else 
    return path[0, path.rindex(base)], base 
    end 
end 
private :chop_basename 

誰もがRuby on Railsアプリケーションを実行できるようにする旅客を説得する方法を、任意の提案を持っています非ASCII文字を含むパスからでも

Railsはバージョン3.2.2、Rubyはバージョン1.9.3-p125、Apacheはバージョン2.2.21、Passengerはバージョン3.0.12です。

ありがとうございました!

答えて

1

この問題の解決策は、あなたのレールアプリのソースファイルに「魔法のコメント」を追加することです。たとえば、以下を追加し、非ASCII文字が発生しますファイルの先頭に:このソリューションを確認するにはhttps://github.com/m-ryan/magic_encoding

# encoding: utf-8 

便利な宝石は、あなたがこれを行う助けるためにそこにあります、私は 'Práce'を含むディレクトリにレールアプリを持って乗客をセットアップし、あなたと同様のエラーが発生しました。私は、私のレールアプリのルートにあるmagic_encoding gemの 'magic_encoding'コマンドを実行しました。私は乗客を再開し、そのトリックをしたようです。希望が助けてくれる!

も参照してください。invalid multibyte char (US-ASCII) with Rails and Ruby 1.9

関連する問題