さて、CentOSサーバーでRuby on Railsを実行していますが、正常に動作しています。現在、同じアプリを、画像の特定のフォルダーを除いて機能しているUbuntuサーバーに移行しようとしています。これは、何が起こっているのか理解できないようです。
Capistranoを介して展開しているので、現在のフォルダーに展開しています。これが私のapache.confファイル設定です:
<Virtualhost *:80>
ServerName myserver
DocumentRoot /var/www/folder/current/public
<Directory /var/www/folder/current/public>
Allow from all
Options -Multiviews
</Directory>
</VirtualHost>
ファイルは私のアプリに存在します(アセット/ベンダーの下)。ビルド中、プリコンパイル中、または展開中にエラーは発生しません。新しいサーバーでファイルを提供しようとすると、次のメッセージが表示されます。
Started GET "/system/vendors/logos/000/000/002/original/filename.png?1354897276" for 68.188.46.74 at 2013-01-25 00:51:37 +0000
ActionController::RoutingError (No route matches [GET] "/system/vendors/logos/000/000/002/original/filename.png"):
actionpack (3.2.11) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
actionpack (3.2.11) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
私は、それが違いを生むかどうかを確認するために、一時ファイル(通常は決して行いません)777を含むアクセス許可の変更を試みました。
システムアセットパイプラインフォルダが共有ディレクトリにあるように見えますが、ログディレクトリのようにシンボリックリンクが表示されません。そこで、シンボリックリンクを作成してみましたが、何も起こりませんでした。
私は途方に暮れています。助言がありますか?
1/25を編集
これを投稿したとき、クリップでアップロードされた画像であることに気づかなかったため、これらの画像がシステムパスに含まれています。したがって、モデルで次のように定義されているロゴ属性からのビューを介してそれらを呼び出しています。
has_attached_file :logo
そして私の見解では、私はこれを介してそれを呼んでいます:
<%= image_tag(vendor.logo.url, :class => 'rounded'); %>
繰り返しになりますが、これは他の2つのサーバーで機能するため、移行がクリアされて影響が出ており、アクセス許可に関連している可能性がありますか?
ImageMagickがサーバーにインストールされます。