2013-05-03 2 views
51

Flask에서 url_for을 어떻게 사용하여 폴더의 파일을 참조 할 수 있습니까? 예를 들어 static 폴더에 일부 정적 파일이 있는데 그 중 일부는 static/bootstrap과 같은 하위 폴더에있을 수 있습니다.url_for로 Flask 정적 파일에 연결

static/bootstrap에서 파일을 제공하려고하면 오류가 발생합니다.

작동하는이 하위 폴더에없는 파일을 참조 할 수 있습니다.

<link rel=stylesheet type=text/css href="{{ url_for('static', filename='bootstrap.min.css') }}"> 

url_for으로 정적 파일을 참조하는 올바른 방법은 무엇입니까? url_for을 사용하여 모든 수준의 정적 파일에 대한 URL을 생성하려면 어떻게해야합니까?

답변

105

정적 파일의 경우 기본적으로 static endpoint입니다. 또한 Flask 응용 프로그램에는 다음과 같은 인수가 있습니다.

static_url_path : 웹의 정적 파일에 다른 경로를 지정하는 데 사용할 수 있습니다. 기본값은 static_folder 폴더의 이름입니다.

static_folder : static_url_path에 게재되어야하는 정적 파일이있는 폴더. 기본값은 응용 프로그램의 루트 경로에있는 '정적'폴더입니다.

url_for('static', filename='path/to/file') 

는 URL 경로 static_url_default/path/to/filestatic_folder/path/to/file에서 파일 경로를 변환합니다 :

IT는 filename 인수가 static_folder에서 파일의 상대 경로를 가지고 static_url_default과 함께 상대 경로로 변환된다는 것을 의미합니다 .

<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 documentation 보면 당신은 static/bootstrap 폴더에서 파일을 얻으려면

그래서 당신은이 코드를 사용합니다.