2017-12-22 12 views
0

Amazon S3で静的サイト(Jekyllで構築)をホストしています。 S3バケットには、末尾が.htmlのURLが必要です。きれいなURLが必要なので、私は先に進み、_config.ymlpermalink属性に末尾のスラッシュを追加しました。今、私のリンクは次のようなものですhttps://blog.domain.com/2017/07/post-slug/permalinkのスラッシュの代わりにAmazon S3静的サイトホスティング(BitBucket Pipelines and s3_website)

これは、ブログの各投稿に別々のフォルダとその中にindex.htmlがあることを意味します。

このアプローチにはのという不利な点がありますか?または、ファイル移動とファイル名変更の代替方法がthis postに記載されていますか?

私が使用しているセットアップのため、プログラムで拡張子を削除してファイルの種類を設定しようとする私の試みはすべて失敗しました。

答えて

2

S3バケットは、アップロード時に正しいMIMEタイプを設定した場合、.htmlで終わらないhtmlファイルを処理できます。

まず、拡張子のないファイルをコピーします。私はこの方法を使用してきた

aws s3 cp _site/ <your_bucket> --recursive --exclude "*" --include "*.*" 

と私はあなたがかもしれないと思う記事hereを書いた:

aws s3 cp _site/ <your_bucket> --content-type text/html --recursive --exclude "*.*" 

そして、.html拡張子を持つファイル役に立つと思う。

+0

ちょっと@marcanuy、ありがとうございました! BitBucket Pipelinesを使用して、S3にサイトを構築して展開しています。 's3_website'はコンテンツをS3にプッシュします。私は 'aws s3 cp'と同様のアプローチを試み、元に戻すでしょう。 –

+0

それはうまくいった!私はあなたの記事に書かれているように、HTMLファイルの名前を変更するためのステップを追加しました: 'find _site/-type f! --iname 'index.html' - '* .html' - print0 |読んでいる間は-d $ '\ 0' f; mv "$ f" "$ {f%.html}";完了しました。 MIMEタイプ(今のところ)を設定せずに動作しますが、MIMEタイプを明示的に設定する方法を検討する必要があります。ありがとう! –

+0

@RamIyerいいえ、私は明示的にファイルのコンテンツタイプを設定しなければならなかったし、s3はそれをhtmlファイルとして認識しませんでした。バケットのデフォルト設定に応じて省略することができます。 – marcanuy

関連する問題