静态文件不起作用,在Flask中使用jinja

时间:2017-10-12 12:07:38

标签: python flask

我是使用Flask的初学者。我的静态文件不起作用,根目录 我有这个树目录:

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

烧瓶app变量:

$ echo $FLASK_APP
flask_mysite/__init__.py

使用vagrant VM导航根/文件夹中的

flask run --host=192.168.56.101

/ flask_mysite / __ init.py __ 中,我是jinjia配置:

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">

有人可以帮我吗? :)

感谢。 和Fabrice

1 个答案:

答案 0 :(得分:0)

您使用了错误的静态文件:http://exploreflask.com/en/latest/static.html

    char *lineptr[MAXLINE]  //Array of char pointers stores the address of string
    int binsrch(char srch[],int low,int high)
    {
       int mid;

       if(high>=low){
          mid=(low+high)/2;
          if(strcmp(srch,lineptr[mid])<0) //compare string stored in srch and lineptr[mid]
                return binsrch(srch,low,mid-1,count);
          else if(strncmp(srch,lineptr[mid],count)>0)
               return binsrch(srch,mid+1,high,count);                                                      
          else 
               return mid; // Found
       }
     return -1;  //Not found
  }                                             

这是Flask文档用于静态文件的代码,你使用它的方式似乎是Django方式

编辑:

你的flaskapp.py

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

您的template.html

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

假设您有“static / css / yourcss.css”和“static / js / yourjs.js”并且.py文件位于具有静态文件夹的文件夹的根目录