url_for
Flask에서 폴더의 파일을 참조하는 방법은 무엇입니까? 예를 들어, static
폴더 에 일부 정적 파일이 있으며 그중 일부는 static/bootstrap
.
에서 파일을 제공하려고 static/bootstrap
하면 오류가 발생합니다.
<link rel=stylesheet type=text/css href="{{ url_for('static/bootstrap', filename='bootstrap.min.css') }}">
이것으로 하위 폴더에없는 파일을 참조 할 수 있습니다.
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='bootstrap.min.css') }}">
정적 파일을 참조하는 올바른 방법은 무엇입니까 url_for
? url_for
모든 수준에서 정적 파일에 대한 URL을 생성 하는 데 어떻게 사용 합니까?
답변
기본적으로 정적 파일에 대한 static
엔드 포인트 가 있습니다. 또한 Flask
응용 프로그램에는 다음 인수가 있습니다.
static_url_path
: 웹에서 정적 파일에 대해 다른 경로를 지정하는 데 사용할 수 있습니다. 기본값은 static_folder
폴더 이름입니다 .
static_folder
:에서 제공되어야하는 정적 파일이있는 폴더입니다 static_url_path
. 기본값은 응용 프로그램의 루트 경로에있는 ‘static’폴더입니다.
이는 filename
인수가 파일에 대한 상대 경로를 가져와 다음 static_folder
과 결합 된 상대 경로로 변환 함을 의미합니다 static_url_default
.
url_for('static', filename='path/to/file')
파일 경로 static_folder/path/to/file
를에서 URL 경로 로 변환합니다 static_url_default/path/to/file
.
따라서 static/bootstrap
폴더 에서 파일을 가져 오려면 다음 코드를 사용하십시오.
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='bootstrap/bootstrap.min.css') }}">
다음으로 변환됩니다 (기본 설정 사용) :
<link rel="stylesheet" type="text/css" href="static/bootstrap/bootstrap.min.css">
또한 url_for
문서를보십시오 .
답변
제 경우에는 nginx 구성 파일에 대한 특별한 지침이 있습니다.
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
nginx는 Flask에 대해 알려지지 않았기 때문에 모든 클라이언트가 ‘404’를 받았습니다.
누군가에게 도움이되기를 바랍니다.