21

友達のためにこのサイトを作成し、Amazon S3バケット(http://ballard26.s3.amazonaws.com/index.html)にアップロードしました。そのサイトにアクセスすると、ページが正しく読み込まれず、次のようになります。理由はわかりません。何か案は?

たとえば、stylesheet.cssが正しく読み込まれません。http://ballard26.s3.amazonaws.com/stylesheet.cssにアクセスすると、CSSとしてロードするのではなく、ファイルをダウンロードします。

4

4 に答える 4

32

アップロードしたファイルのmimeタイプ(HTTPコンテンツタイプヘッダー)を確認してください。S3は常にそれらを正しく設定するとは限りません。アップロードAPI呼び出しでそれらを設定する必要がある場合があります。一部のアップロードライブラリがこれを行います。

ファイルがブラウザからS3からダウンロードされたときにmimeタイプが正しくない場合、mimeタイプが正しく設定されていないと、常に正しくレンダリングされるとは限りません。

于 2010-04-11T18:32:53.020 に答える
18

CSSファイルのデフォルトのMIMEタイプはoctet/binary。です。これを修正するには、AWS Management Consoleにサインインし、Amazon S3セクションに移動して、関連するバケットを見つけます。CSSファイルを見つけて、[プロパティ]を選択します。[メタデータ]で、Content-Typeキーを次の値に設定します。text/css

Mac OS X用のPanicのTransmitアプリを使用する場合、CSSファイルのカスタムアップロードヘッダーを設定できます。CSSファイルのカスタムアップロードヘッダーはContent-Type: text/css、ファイルをアップロードするたびに正しいMIMEタイプを適用するため、コンソールで毎回手動で設定する必要がありません。

これに関する詳細は、AdamWilcoxのブログ投稿にあります。

于 2013-08-26T11:13:55.183 に答える
5

ファイルをアップロードするときに、ファイルのmime-typeを正しく指定または設定しなかったと思います。その結果、デフォルトで。になりbinary/octet-streamます。

ページをロードすると、ブラウザは指定したスタイルシートがCSSファイルではないと見なします。text/cssこれは、スタイルシートが適用されていないため、以外のコンテンツタイプで提供されているためです。

于 2010-04-11T18:45:25.910 に答える
3

CSS / JSファイルのコンテンツタイプが正しくないため、IEでも同じ問題が発生しました。

RubyとAWSgemを使用している場合は、次のコードを使用してください。

s3 = Aws::S3Interface.new($s3[:s3_access_key_id],$s3[:s3_secret_access_key],{:multi_thread => true});
s3.put($s3[:s3_bucket],s3_path,file[:tempfile].read,{'x-amz-acl' => 'public-read', 'content-type' => 'text/css' })

S3メタデータの構文が異なることに注意してください。

'content-type' => 'text/css'
于 2010-12-22T20:06:04.447 に答える