問題タブ [asset-sync]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Rails で、リポジトリとアセット パイプラインにコミットしたくない非常に大きなファイル (ビデオなど) を処理する最善の方法は何ですか?
Railsアプリを持っています。
そして、アセット パイプラインには非常に大きなビデオがいくつかあります (数ギグ分の価値があります)。
私がやりたいのは、これらのビデオをレポから削除してプロセスを展開することです。巨大でプロセスが遅くなるためです。
ただし、アセット パイプラインおよびアセット同期と同様の方法で動作するようにしたいと考えています。また、リポジトリへの変更によってバージョン管理されます。
このようなリポジトリで大きなビデオ/ファイルを処理する最良の方法は何ですか?
heroku - Rails 4 - アセット フィンガープリントがアセット パスから自然に失われる
構成: Heroku 上の Rails 4、HTML、CSS。
Rails 4 アプリを 5 か月間運用しています。これが私の production.rb の内容です。
本番環境にプッシュするときはいつでも、 を使用してアセットをクリーンアップしてから、 を使用rake assets:clean
してプリコンパイルしますrake assets:precompile
。これによりアセットのフィンガープリントが作成され、クラウドフロント経由で提供される S3 静的ファイル バケットに直接プッシュされます。次に、アプリをライブで Heroku にプッシュします。
.html.erb ホームページで、次のように Rails タグを介して静的ファイルを呼び出します。
指紋を使用して正しくレンダリングするもの。たとえば、2 番目に最近生成されたアセット パスは次のとおりです。http://dynasfakeurl.cloudfront.net/assets/application-17892abdffc77f1fb1be125bab.css
通常、これはうまく機能します。ただし、最後のプッシュから 12 ~ 16 時間後に、すべてのアセット パスが自然にフィンガープリントを失うという問題が 2 回発生しました。たとえば、スタイルシート タグは最後にこのアセット パスを生成しました: http://dynasfakeurl.cloudfront.net/stylesheets/application.css
. これは存在しません。したがって、ページをロードすると、アセットのロードに失敗します。
私はこれをデバッグしようとして過去数時間立ち往生していましたが、何もプッシュせずにアセットパスが自然に本番環境でフィンガープリントを失う理由を理解できません.
ruby-on-rails - AngularJS ディレクティブとテンプレートの Rails 画像アセット
これらのgemを使用して、AngularJSを使用したRails 4アプリケーションがあります:
- gem 'angularjs-rails'
- gem 'angular-rails-templates'
- 宝石「asset_sync」
次のようなテンプレートでうまく機能します。
イメージは正しくレンダリングされます。しかし、私の他のjsでは
ブラウザ コンソールから 'assets/feed.icon.heart.png' が見つかりませんでした。app/assets/feed.icon.heart.png の下に feed.icon.heart.png があります。
ps: 言い忘れましたが、assets sync gem を使用して、Amazon s3 でアセットをホストしています。イメージは開発ではうまくいきましたが、本番環境ではうまくいきませんでした。
ruby-on-rails - Rails 3でasset_syncがmd5ハッシュ化アセットを呼び出さない
ハッシュ化されたバージョンだけでなく、元のバージョンと md5-hash バージョンがアップロードされているバケットにアップロードするときに、asset_sync 構成に問題があることを誰かが確認できるかどうか疑問に思っていましたが、これは正しいですか?
また、アセットを呼び出そうとすると、md5 ハッシュではなく元のファイル名が呼び出されるため、
それ以外の
私のイニシャライザは次のようになります
heroku rake:assets にデプロイするとプリコンパイルが実行されますが、ローカルでも実行されているので、manifest.yml ファイルが正しくないのでしょうか? これを削除して新しいものを作成できますか?
さらに情報が必要な場合は、お知らせください
ありがとう
編集
それで、元のファイルと指紋のアセットが作成される理由を見つけました
「Rails 3 はデフォルトで、フィンガープリント化されたアセットを生成するために 1 回コンパイルされ、フィンガープリント化されていないアセットを生成するために 1 回コンパイルされます (フィンガープリント化されたものは、ファイル名に MD5 ハッシュが含まれています)。
Turbo-sprockets-rails3 gem を使用して、1 つのコンパイルから両方を作成できます。
Rails 4 では、この機能が sprockets-rails gem に抽出され、動作が変更されたため、Rails 4 では二重コンパイルは発生しません。」
この段階では、フィンガープリントされたアセットが呼び出されない理由はまだわかりません
ruby-on-rails - asset_sync を使用した s3 上の Rails アセット - CSS 背景画像の URL に AWS バケット名がありません
最初に、私は Ruby と Rails に関してはまったくの初心者であるということから始めさせてください。
heroku へのデプロイに成功したアプリのソースを入手しました。開発モードで実行すると正常に動作しますが、本番モードに切り替えると画像が表示されません。
アプリはassets_sync Gem を使用しており、画像やその他のアセットは、S3 バケットを使用して AWS から提供する必要があります。css ファイルと js ファイルは正しく処理されますが、画像は処理されません。この記事では、それがどのように機能するかについて非常によく説明してい ます https://firmhouse.com/blog/complete-guide-to-serving-your-rails-assets-over-s3-with-asset_sync
私が知る限り、css と画像はプリコンパイルされています。sass から生成された css を使用して、画像を 1 つのスプライトに結合します。この記事は、ここで何が起こっているかを説明するのに役立ちましたhttp://compass-style.org/help/tutorials/spriting/ (経験豊富なレール開発者にとってはおそらく新しいものではありません)
もう少し掘り下げて、実行中のアプリの css を表示すると、背景画像の URL プロパティに URL からのバケット名がありません。
以下に例を示します。私はその部分が次のようになると確信してい//.s3
ます//mybucket.s3
:
URLを取得してブラウザのアドレスバーに直接配置すると、画像が表示されません!. しかし、バケット名を追加するとすぐに、イメージがダウンロードされます。つまり、次のように動作し、イメージが s3 バケットに存在することを確認します。
これは、css が正しくプリコンパイルされておらず、おそらく構成からバケット名が見つからないことを意味します。
heroku の設定が正しいことを確認しました。以下のセットで:
- FOG_PROVIDER、
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- FOG_DIRECTORY
- FOG_REGION
私はこれでかなりの時間を費やして壁にぶつかり、結果なしで問題をグーグルしました。それで、誰かが以前にこの問題を見たことがありますか、または何がうまくいかないのかを解決する方法を提案していますか?
ruby-on-rails - .js および .css アセットの提供に関する問題 cloudfront CDN Heroku Rails 4 アプリ
Rails 4 アプリのアセットを Cloudfront CDN 経由でホストしようとしています。以前は asset_sync と s3 を使用していましたが、CDN に切り替えたいと考えていました。
Heroku アプリにアクセスすると、すべてのページが生の HTML であることがわかります。JS または CSS のいずれもロードされていません。
コンソールから表示されるエラーは次のとおりです。
コンソール エラーのスクリーンショット: http://i61.tinypic.com/15rxdsj.jpg
また、Cloudfront のオリジン設定でオリジン ドメイン名とオリジン パスを正しく設定したかどうかもわかりません。現在、heroku アプリの URL をオリジン ドメイン名として使用し、「/production/assets」をオリジン パスとして使用しています。
Production.rb ファイル: http://pastebin.com/2dzLpGfE
この 1 週間、Heroku アプリに CSS と JS を表示させようとしましたが、うまくいきませんでした。洞察をいただければ幸いです。前もって感謝します!