我无法让flask运行我的css和js文件。它只是打开一个页面,其中所有图片都丢失了,所有文本字段、按钮等都分散在各个地方。所以我发现相关文件需要在static文件夹中,并且路径需要相应地进行调整,例如CSS Problems with Flask Web App 或 External JavaScript file is not getting added when running on Flask。我已经实施了这些措施,但并没有真正帮助到我。显然这是一个常见的问题。我在stackoverflow上尝试了一些其他建议/解决方案,主要集中在语法和括号等方面,但没有任何帮助。所以我的文件夹结构是这样的:
/myproject
/static
/css_image
script.js
img1.png
asdf.css
/templates
index.html
app.py
以下是上述路径的HTML代码中的几行:
这是从上述路径的HTML代码中提取出的几行:
<link rel="stylesheet" media="all" href="{{ url_for('static', filename='css_image/asdf.css')}}">
<link rel="apple-touch-icon" sizes="57x57" href="{{ url_for('static', filename='css_image/img1.png')}}">
<script src="{{ url_for('static', filename='css_image/script.js')}}" data-turbolinks-track="reload"></script>
我的 Python-Flask 代码如下:
from flask import Flask, url_for, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template("index.html")
if __name__ == '__main__':
app.run()
当我运行 Flask 后,输出如下:
127.0.0.1 - - [07/Oct/2019 14:10:06] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [07/Oct/2019 14:10:06] "GET /static/css_image/img1.png HTTP/1.1" 404 -
127.0.0.1 - - [07/Oct/2019 14:10:06] "GET /static/css_image/asdf.css HTTP/1.1" 404 -
127.0.0.1 - - [07/Oct/2019 14:10:06] "GET /static/css_image/script.js HTTP/1.1" 404 -
我应该补充一下,当我直接点击文件打开时,HTML文件工作得很好。
url_for
的输出直接进入页面(而不是放在IMG/scriptsrc
标签中),基本上是一个只包含{{ url_for( ~~ ) }}
的模板文件。重新加载页面并确保正确性。然后使用不使用缓存的curl
命令访问该URL。 - v25