2017-03-07 7 views
0

Flaskを使用して簡単なAPIを作成しようとしています。私はMiguel Grinbergのblogに従っています。Flaskが静的ファイルを解決できない

静的なページを提供しようとしているユースケースがあります。私は静的なWebページを提供することができません。

flask_application/ 
    - app.py 
    - static/ 
     - index.html 
     - cs/ 
      - app.css 
      - bootstrap.css 
     - js/ 
      - jquery.js 
     - images/ 
      - logo.png 

誰もが重複としてこれをマークする前に、私は以下の記事を経て、それがされていません。ここで

は私のapp.py

from flask import Flask, request, abort, render_template 

app = Flask(__name__) 

@app.route('/sample/application/', methods=['GET']) 
def static_website(): 
    return render_template('index.html') 

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

そして、次は私のディレクトリレイアウトであります私の問題を解決しました。 Again related to templating

No response + question for templating

  • Unable to serve css, js and image files
    • が他の質問がありますが、何のものは、静的なページでは、CSS、JSファイルを解決するための具体的な解決策を与えません。

      Flaskによって作成されたサーバーは、js、cssファイルを取得できません。

      また、この唯一のユースケースは、私が持っているので、私はテンプレートを避けていると私はかなり確信して、私は他のページを追加したり、それをより複雑にするつもりはありません。

  • +1

    http://stackoverflow.com/a/42466734/1632479 –

    答えて

    2

    テンプレートはtemplatesという名前のフォルダにある必要があります。だから、正しい解決策は、あなたがrender_templateメソッドのdocumentationを読むことができます

    flask_application/ 
        - templates/ 
        - index.html 
    

    でなければなりません。

    +0

    CSSやJSファイルが必要に静的フォルダの下にあるだけですか? – Amriteya

    +0

    ええ、それはテンプレートのフォルダにあるはずのhtmlテンプレートだけです。他のすべてのファイルは静的ディレクトリに置いてください。 あまりにもかかわらず、これをカスタマイズする設定があるかもしれません。しかしそれは一般的なレイアウトです。 – Jonathan

    +0

    @amriteyaしかし、完全に静的なウェブサイトの後にいるのであれば、なぜペリカンのようなものを使用していないのですか?フラスコを使用する理由はありますか? – Jonathan

    0

    テンプレートのレンダリングを気にしない場合は、経路上に静的ファイルを送信するだけで済みます。この方法で、すべてをstaticディレクトリに残すことができます。

    app.send_static_file('index.html')

    ただ、資産の残りの部分は/static/<asset>として参照する必要があります覚えて、すなわち<script src="/static/js/jquery.js></script>

    +0

    これは動作しません。私はそれを試してみました。 – Amriteya

    関連する問題