2

我的文件结构:

my_app
   /models
   /views
   /templates
   /other_folders
   /www (where flask resides)
      /templates
         some_files.html
      /static
         /css
           style.css
      /views
      /models
   my_app.py (run the app in console)
   web_my_app.py (run flask app)

在 web_my_app.py 中,mystatic_folder的设置如下:

app = Flask('my_app',
            template_folder='www/templates/',
            static_folder='www/static'
            )

# As a test, let's develop a basic page 
@app.route('/')
def show_index():
    return render_template('main.html', entry="hello")

main.html 看起来像这样:

{# Main page #}
{% extends "layout.html" %}
 {% block body %}
 <h2>Main Page</h2>
 {{ entry }}
{% endblock %}

layout.html 具有以下样式表

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

问题:为什么我在静态页面上得到 404 而在我的模板上却没有?

该应用程序可以很好地访问模板文件,但不知道静态页面在哪里。

4

1 回答 1

2

我想你会发现静态文件很好并且可以在http://localhost:5000/www/static/....

static_folder默认情况下,Flask 的开发服务器使用您在参数中提供的相同 URL 前缀提供静态文件。如果您希望 URL 不同,则必须将static_url_path参数添加到 Flask 构造函数。例子:

app = Flask('my_app',
        template_folder='www/templates/',
        static_folder='www/static',
        static_url_path='/static'
        )

现在您可以在以下位置找到您的静态文件http://localhost:5000/static/...

于 2013-09-11T16:26:26.280 回答