인프런 커뮤니티 질문&답변

라비크님의 프로필 이미지
라비크

작성한 질문수

남박사의 파이썬으로 실전 웹사이트 만들기

도메인을 구입하여 구글 클라우드 플랫폼에 연결하기

구글 클라우드에서 static 폴더 경로 설정 문제

작성

·

461

0

안녕하세요 좋은 강의 잘 듣고 있습니다

구글 클라우드에서 docker file을 실행했을때

static 폴더에 있는 image file 동영상 파일이 없다고 나오는데요

image 파일 동영상 파일을 불러오는(rendering하는) html 파일에서 static 폴더내 이미지 동영상 파일 경로를 어떻게 설정해야하는지 궁금합니다

설명 부탁드립니다 감사합니다

답변 2

0

남박사님의 프로필 이미지
남박사
지식공유자

로컬에서 문제 없던게 gcp에서 동작하지 않는다면 도커 생성시 어떤 차이가 발생했는지를 확인해보셔야 할 듯 합니다. 도커 생성시에 말씀하신 이미지 파일과 동영상 파일이 도커내에 모두 복사가 되었는지도 확인해보셔야 할듯 합니다.

그리고 어디서 문제가 생겼는지 확인하기 위해서 url_for를 사용하지 않고 직접 절대경로를 입력해서 영상이나 이미지가 제대로 나오는지 먼저 확인해보시고 한단계씩 의심스러운 부분을 제거해나가면서 원인을 찾아보시는것도 좋은 방법입니다.

0

남박사님의 프로필 이미지
남박사
지식공유자

안녕하세요.

 

일단 static 폴더에 있는 image file 동영상 파일이 어떤 것을 말씀하시는건지 모르겠습니다. 특별한 설정이 없다면 static 폴더는 그냥 static 이름으로 동작해야 합니다.

어떤 경우의 image file과 동영상 파일을 어떤 목적으로 핸들링하려는지 명확치 않아 답변을 드리기 어렵습니다만 혹은 send_file(), 혹은 send_from_directory() 와 같은 함수를 사용하여 static 폴더 대신 직접 경로로 접근하는 방법을 더 자주 사용하기도 합니다.

확인해보시고 해결되지 않으면 다시 질문주시기 바랍니다. 감사합니다.

라비크님의 프로필 이미지
라비크
질문자

남박사님 빠른 답변 감사드립니다

강의 내용은 그대로 게시판까지 GCP에서 잘 실행되어서 추가로 이미지 파일 동영상파일을 같이 재생하고자 코드에 추가를 해보았습니다

main 폴더 아래 static 폴더를 만들고 그안에 이미지 파일과 동영상파일을 넣었습니다

그다음 templates 폴더에 이미지와 동영상을 재생할수있는 html 파일 myimage.html, mymusic.html파일을 만들었습니다

myimage.html, mymusic.html 파일 내용은 다음과 같습니다

<!DOCTYPE html>

<html>

<body>

<h2>ARTEMIS</h2>

<!-- <img src="static/Artemis.jpg"> -->

<img src={{ url_for('static', filename='Artemis.jpg') }}>

</body>

</html>

 

<!DOCTYPE html>

<html>

<body>

<video width='640' height='480' autoplay controls loop>

<source src={{ url_for('static', filename='saraband.mp4') }}>

</video>

</body>

</html>

<h3> SARABAND</h3>

local computer에서는 board게시판 기능 image 동영상파일 재생이 모두 잘됩니다

그런데 구글 클라우드에서 docker 파일 제작후 접속해보면 게시판 기능은 모두 잘 작동되며 image, 동영상파일 재생 page까지는 잘 넘어가는데

검사기능에서 보면 image file과 동영상 파일을 찿을수 없다는 에러 메시지가 뜹니다

클라우드server에서 재생할 파일의 경로 설정 문제 같은데 해결이 잘 안됩니다 ㅜㅜ

static 폴더의 클라우드에서의 절대경로는 다음과같습니다 "/home/odd~~/myweb/main/static/"

static 폴더 내에 Artemis.jpg , saraband.mp4 파일을 넣어둔 상태입니다

 

라비크님의 프로필 이미지
라비크

작성한 질문수

질문하기