flask url_for()在指向静态文件夹的同时在url之前添加“/”

时间:2017-12-05 16:43:51

标签: nginx flask url-for

我的烧瓶应用程序有这个文件夹结构:

app.py
 /templates
     login.html
     index.html
 /static
   /css
     main.css
     login.css
   /js
     login.js
   /images
     image.png

当我在login.html中使用<link rel="stylesheet" href={{url_for('static',filename='css/main.css')}}>时,它呈现为  <link rel="stylesheet" href="/static/css/main.css">(注意静态前的斜杠)。

现在,这会导致404错误,因为我打算运行在NGINX服务器块中使用/ app1 /运行此应用程序。由于前缀为斜杠,应用程序尝试在XXX.XXX.XX.XX/static/css/main.css而不是XXX.XXX.XX.XX/app1/static/css/main.css中找到main.css

如果我不使用url_for()并在login.html中写入整个文件路径,即<link rel="stylesheet" href="static/css/main.css">(在静态之前没有预先设置斜杠),它就可以了。

但是我想在模板中使用url_for(),因为它被认为是一种很好的做法,可以省去很多麻烦。

任何帮助/建议都将受到高度赞赏。

[编辑]:现有问题询问“添加前缀”到url_for()。这个问题涉及理解为什么url_for()在其路径中添加“/”,以及如何删除前置斜杠。如果我在模板中编写整个url路径,应用程序正在工作,但这不是一个好的解决方案。 / p>

1 个答案:

答案 0 :(得分:0)

如果保存文件会造成一些麻烦,为什么不通过提供链接CDN引导程序

我希望有帮助