1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS S3 CSSが反映されないとき

Last updated at Posted at 2021-02-12

初めに

s3にboto3を使ってindex.html, main.js, style.cssをアップロードした。URLを開くとJavascriptが動いていることがわかった。しかしstyle.cssが反映されていなかった。

image.png

メタデータ編集

手順1
style.cssをクリックし、オブジェクトアクションをクリック

image.png

手順2
メタデータの編集をクリック

image.png

手順3
以下の"値"が"text/html"になっているので、"text/css"に編集する

image.png

編集後

image.png

手順4

オレンジ色のメタデータの編集ボタンを押す

image.png

これで反映される!!!
と思いきや反映されませんでした。
なぜ!!!

キャッシュの削除

キャッシュを削除すると反映された・・・
(・∀・)ウン!!
設定しなおした後は必ずキャッシュ削除
以下の記事を参考にした

boto3

upload.py

import boto3


def get_content_type_dict():
    content_dict = {'html': 'text/html',
                    'css': 'text/css',
                    'js': 'text/javascript',
                    'jpeg': 'image/jpeg',
                    'png': 'image/png',
                    'csv': 'text/csv',
                    'json': 'application/json',
                    'pdf': 'application/pdf'}
    return content_dict


def upload(up_file, bucket, object_name, credentials):
    session = boto3.Session(aws_access_key_id=credentials[0],
                            aws_secret_access_key=credentials[1],
                            aws_session_token=credentials[2])
    s3_client = session.client('s3')
    type_dict = get_content_type_dict()
    content_type = type_dict[os.path.splitext(object_name)[1].strip('.')]
    try:
        s3_client.upload_file(up_file, bucket, object_name,
                              ExtraArgs={'ContentType': content_type,
                                         'ACL': 'public-read'})

こんな感じで拡張子に応じてアップするときメタデータを設定すると楽かも
Content-Typeは以下の記事を参考にした
https://qiita.com/AkihiroTakamura/items/b93fbe511465f52bffaa

ExtraArgsなるものの存在は以下の記事が参考になった
https://qiita.com/jansnap/items/ecad5f20659cf138419b

疑問

main.jsはメタデータがtext/htmlでも動くこと

参考文献

ローカル環境でCSSが反映されない時に見直すべきhttpdの設定
https://hodalog.com/httpd-enablesendfile-off/

Content-Typeの一覧
https://qiita.com/AkihiroTakamura/items/b93fbe511465f52bffaa

boto3でS3にアップロードした画像が、ブラウザで表示するとダウンロードされてしまう時
https://hack-le.com/boto3-s3-browser/

Python+boto3でS3に画像をアップロードして公開する
https://qiita.com/jansnap/items/ecad5f20659cf138419b

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?