为什么我不能用Flask加载Processing.js草图?

时间:2016-05-16 17:19:46

标签: python web-applications flask processing processing.js

我试图在我的网站上使用processing.js,但我一直收到错误:" processing.min.js无法加载资源:服务器响应状态为404(未找到)"

我使用Flask的 render_template()加载test.html:

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Processing.js</title>
    <script src="processing.min.js"></script>
  </head>
  <body>
    <h1>Processing.js</h1>
    <script type="text/processing">
    void setup() {
        size(400,200);
        textAlign(CENTER, CENTER);
        background(0,0,100);
        fill(255,230,75);
        text("Processing.js", width/2, height/2);
        noLoop();
      }

      void draw() {
      }

      void mouseMoved() {
        stroke(255);
        point(mouseX, mouseY);
        redraw();
      }

      void mousePressed() {
        line(0,mouseY,width,mouseY);
        line(mouseX,0,mouseX,height);
        println(mouseX, mouseY);
      }
    </script>
    <canvas></canvas>
  </body>
</html>

我随后运行的烧瓶文件只是:

from flask import Flask,request,render_template
app = Flask(__name__)

@app.route("/")
def hello():

    return render_template('test.html')

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

当我在本地主机上运行时: http://127.0.0.1:5000/ 我看到标题 Processing.js 但没有实际的canvas元素。

1 个答案:

答案 0 :(得分:0)

根据Flask docs

  

动态Web应用程序还需要静态文件。这通常是CSS和JavaScript文件的来源。理想情况下,您的Web服务器已配置为为您提供服务,但在开发期间,Flask也可以这样做。只需在包中或模块旁边创建一个名为static的文件夹,它就可以在应用程序的/ static中找到。

正如davidism所述,请使用url_for模板方法引用文件

<script type="text/javascript" src="url_for('static', filename='processing.js')"></script>

假设您的静态文件(.js和.css)位于静态文件夹中。