2011-01-31 9 views
2

メディアディレクトリをS3にアップロードすると、これらのパスが壊れます。私はAmazon S3のCDNへの私の全体のメディアディレクトリをアップロードするスクリプトを持ってjavascriptファイルで使用されるイメージの相対パスがある状況を処理するにはどうすればよいですか?

は、ここに私のプロセスです。 私のウェブサイトはそのCDNからimages/css/jsをダウンロードします。

しかし、JQueryの多くのプラグインには、「比較的」定義された画像があります。 それがS3に置かれたら、そのパスはもう意味をなさない。

この場合、私は何をしますか? 私は本当に私のメディアフォルダをS3に入れたいと思っていますが、パスを保持しておきたいだけです。

例:fancybox.jsはfancybox-image.jsを呼び出し、それを検出するので

/media/js/fancybox/fancybox.js 
/media/js/fancybox/fancybox-image.png 

私は私のApache/Djangoのサーバーでこれを実行し、それは、動作します。しかし

、私はAmazon S3の上でそれを実行します。

s3.amazon.com/my_bucket/js/fancybox/fancybox.js 
s3.amazon.com/my_bucket/js/fancybox/fancybox-image.png 

javascriptを呼び出し、このイメージを代わりに:開発環境で、それはだよう

s3.amazon.com/my_bucket/fancybox-image.png 
+0

コードで例を示してもいいですか?わかりません。 –

答えて

1

は、あなたのJSにURLbase変数を定義URLbase = "http://localhost"のようなもので、本番であればURLbase = "http://s3.amazon.com/my_bucket"

URLを定義するときにURLベースをその場所に追加することができます。 URLベースをパスの先頭に追加するユーティリティ関数を定義することができます(これは、一度にいくつかのベースURLを取得した場合、より柔軟になります)。

+0

すべてのJQueryプラグインを変更する必要がありますか? – TIMEX

+0

今朝、もっときれいな頭で、あなたの質問でペッカと混乱しているようです。問題をよりよく理解できるようにコード例を投稿してください。私はそれに応じて回答を編集します。 – nedk

関連する問題