>백엔드 개발 >Golang >My Go 웹 애플리케이션에서 CSS 파일을 제공할 때 왜 404 오류가 발생합니까?

My Go 웹 애플리케이션에서 CSS 파일을 제공할 때 왜 404 오류가 발생합니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-23 20:05:21274검색

Why Am I Getting a 404 Error When Serving CSS Files in My Go Web Application?

문제: 404 Go에서 CSS를 렌더링하는 동안 페이지를 찾을 수 없음

Go 웹 애플리케이션에서 CSS 파일을 사용하려고 하면 사용자에게 다음과 같은 문제가 발생할 수 있습니다. CSS 파일을 찾을 수 없음을 나타내는 404 오류입니다. 제공된 설명서의 지침을 따랐음에도 불구하고 이 문제가 발생합니다.

관련 디렉터리 구조 및 코드:

관련 디렉터리 구조는 다음과 같습니다.

src/
  |__ css/somefilename.css
  |__ server/server.go

server.go의 코드에는 다음이 포함됩니다.

http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("css"))))

HTML 템플릿 src/templates/layout.html, CSS 파일은 다음과 같이 참조됩니다.

<link rel="stylesheet" type="text/css" href="../css/css490.css" />

문제 소스 및 해결 방법:

제공된 경로 때문에 오류가 발생합니다. FileServer 디렉터리에 대한 경로는 절대 경로가 아닙니다. Go의 상대 경로는 애플리케이션이 실행되는 작업 디렉터리로 확인됩니다.

이 문제를 해결하려면 사용자는 일반적으로 다음과 같은 경우 명령줄 인수에 지정되는 올바른 작업 디렉터리에서 애플리케이션이 실행되는지 확인할 수 있습니다. 프로그램을 실행 중입니다. 또는 FileServer 함수에 CSS 디렉터리의 절대 경로를 명시적으로 제공할 수 있습니다.

예를 들어 작업 디렉터리가 src인 경우 go run server/server.go를 실행하면 경로가 올바르게 확인되고 CSS 파일은 localhost:8080/css/에서 액세스할 수 있습니다. 그러나 src/server 폴더에서 go run server.go를 실행하면 404 오류가 발생합니다.后者에서 이 문제를 해결하려면 사용자는 절대 경로를 사용하도록 코드를 수정할 수 있습니다.

http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("/src/css"))))

CSS 디렉토리의 전체 경로를 지정하면 프로그램이 작업 디렉토리에 관계없이 CSS 파일을 찾을 수 있습니다. 실행됩니다.

위 내용은 My Go 웹 애플리케이션에서 CSS 파일을 제공할 때 왜 404 오류가 발생합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.