2017-12-22 1 views
0

Amazon S3에서 정적 사이트 (지킬로 제작 됨)를 호스팅하고 있습니다. S3 버킷의 URL은 .html으로 끝나야합니다. 내가 깨끗한 URL을 원하기 때문에, 나는 _config.ymlpermalink 속성에 슬래시를 추가했다. 자, 내 링크는 다음과 같습니다 https://blog.domain.com/2017/07/post-slug/permalink의 후행 슬래시 대신 Amazon S3 정적 사이트 호스팅 (BitBucket Pipelines 및 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

관련 문제