我正在尝试使用AI作为播放器2制作TicTacToe Web应用程序。为此,我在python中编写了游戏和AI,编写了html / javascript前端,并使用了烧瓶服务器。在html中我有img标签和资产,例如(这些以传统方式嵌入在html文件中):
<img id="pic" src="assets/images/hil.jpg" class="X">
or
<audio src="assets/audio/smw_coin.wav" id="marioStart" preload="auto"></audio>
但是,我收到此表单的错误。
127.0.0.1 - - [11 / Feb / 2016 23:52:22]“GET /assets/audio/smb_pipe.wav HTTP / 1.1”404 -
127.0.0.1 - - [11 / Feb / 2016 23:52:22]“GET /assets/js/jquery-1.11.3.js HTTP / 1.1”404 -
Flask似乎将此解释为域名而不是检查assets文件夹。有谁知道如何让Flask将src请求解释为flask模板文件夹中的目录?
PS。这也是一个问题,因为它阻止我在我的html文件中包含JQuery。
答案 0 :(得分:0)
您想使用url_for
。
<img src="{{ url_for('static', filename='images/hil.jpg') }}">
默认情况下,您最终会得到一个与/static/images/hil.jpg
文件夹中提供的static
类似的网址。如果您想保留所拥有的URL,则必须告诉Flask为静态资产使用不同的URL路径。
app = Flask(__name__, static_url_path='/assets')
这将为您提供一个类似/assets/images/hil.jpg' that is served up from your
static`文件夹的网址。如果您已经命名了文件夹资源而又不想重命名它,那么您也可以告诉Flask在其他文件夹中查找静态资源。
app = Flask(__name__, static_folder='assets')
这将为您提供一个类似于/assets/images/hil.jpg
文件夹中提供的assets
的网址。在这种情况下,您无需指定两个参数,因为static_url_path
默认使用static_folder
。