2017-10-12 96 views
0

我是一個使用Flask的初學者。我的靜態文件不工作,根 我有這棵樹目錄:靜態文件無法正常工作,在Flask中使用jinja

/   <-------------- launching (flask run) the site, here. 
/static 
/static/css 
/static/js 
/static/img 
/flask_mysite 
/flask_mysite/log 
/flask_mysite/templates 

燒瓶應用變量:

$ echo $FLASK_APP 
flask_mysite/__init__.py 

要導航/文件夾,使用流浪漢VM:

flask run --host=192.168.56.101 

/flask_mysite/__init.py__我已經在金佳配置:

flask_mysite.jinja_env.globals['static'] = (
    lambda filename: url_for('static', filename=filename) 
) 

from flask_mysiteimport views, models 

if __name__ == '__main__': 
    flask_mysite.run(debug=True) 

而且,在/flask_mysite/templates/base.html,例如:

<link rel="stylesheet" href="{{ static('css/main.css') }}"> 

因此,生成的HTML:

<link rel="stylesheet" href="/static/css/main.css"> 

請問一個人可以幫助我嗎? :)

謝謝。 法布里斯

回答

0

您使用錯誤的靜態文件:http://exploreflask.com/en/latest/static.html

<link rel="shortcut icon" 
href="{{ url_for('static', filename='img/favicon.ico') }}"> 

這是瓶文檔使用靜態文件的代碼,途中您使用這似乎是Django的方式

編輯:

你flaskapp.py

app = Flask(__name__) 
@app.route("/") 
def home(): 
return render('template.html') 

你template.html

<!doctype html> 
<html> 
<head> 
    <link href="{{ urlfor('static' , filename='css/yourcss.css'}}"> 
    <script src="{{ urlfor('static' , filename='js/yourjs.js'}}"></script> 
</head> 
<body> 
    <!-- the rest of your html --> 
</body> 
</html> 

假設你有「靜態/ CSS/yourcss.css」和「靜態/ JS/yourjs.js」和.py文件與該文件夾的根目錄靜態文件夾

+0

謝謝。但是,在生產中,它的工作方式就像(使用apache虛擬主機)。但是,本地模式,與虛擬機,不。如果我在'flask_mysite/static'中移動'static'文件夾。沒關係 :)。 – fabrice

+0

在生產中,也許你對「/靜態」的別名可能是您的靜態文件夾,在當地如果你使用的是Apache,那麼也應該複製相同的配置,或者使用瓶方式爲靜態文件 –

+0

而且,我動「靜態」沒有改變你告訴我的代碼。 #UPDATE:沒有,在本地模式下,我既沒有使用Apache或nginx的,只是在命令行(燒瓶運行) – fabrice

相關問題