【问题标题】:Flask routes with path parameter / sub-path causing issues with referenced assets带有路径参数/子路径的烧瓶路由导致引用资产出现问题
【发布时间】:2021-10-28 14:12:24
【问题描述】:

我有一个烧瓶网络应用程序,我在我的 html 页面中使用各种主题化图标等,例如:

<i class="c-indigo-500 ti-search"></i>

对于标准烧瓶路线,例如:

@app.route("/orders")
def route():
return render_template("page.html")

一切正常。我的图标、特殊字体等都可以在 HTML 页面上正常显示。

但是,如果我尝试包含带有子路径或路径参数的路由,例如

@app.route("/orders/<orderid>")
def route(orderid):
return render_template("page.html")

HTML 页面上的引用似乎突然中断。图标不呈现,例如

我认为线索在于查看开发者控制台,我可以看到资产的路径似乎不正确?例如

GET http://localhost:5000/ordersearch/static/assets/fonts/e23a7dcaefbde4e74e263247aa42ecd7.ttf net::ERR_ABORTED 404 (NOT FOUND)

问题在于路径中现在包含/ordersearch/。如果没有该部分,路径将是正确的。我在这里做错了什么?如何在不破坏对资产的引用的情况下在烧瓶中拥有路径参数或子路径(例如 /search/documents/document/)?我的文件夹结构如下:

app\app.py = main application

app\templates\ = (main HTML pages)
   \_____ app\templates\includes\ = (footer, header and other complimentary HTML content)

app\static\ = css, js, fonts etc. 
   \____static\assets
   \____static\assets\fonts
   \____static\assets\images
   \____static\assets\static
   \____static\assets\static\fonts
   \____static\assets\static\images
   \____static\assets\static\fonts\icons
   \____static\assets\static\fonts\icons\fontawesome
   \____static\assets\static\fonts\icons\themify
   \____static\assets\static\images\datatables

【问题讨论】:

    标签: python html flask url routes


    【解决方案1】:

    这是在 Python Flask 的管理员仪表板模板中发现的一个特定问题。 bundle.js 中有对这些 .woff 和 .eot 字体的引用,并且由于没有前导正斜杠,因此路径/url 没有正确生成。

    通过更改任何引用来修复,例如:

    147: function (t, i, a) {
      t.exports =
        a.p + "static/assets/fonts/2c454669bdf3aebf32a1bd8ac1e0d2d6.eot";
    },
    

    收件人(注意以'/'开头)

    147: function (t, i, a) {
      t.exports =
        a.p + "/static/assets/fonts/2c454669bdf3aebf32a1bd8ac1e0d2d6.eot";
    },
    

    【讨论】:

      猜你喜欢
      • 2021-03-22
      • 2021-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-26
      相关资源
      最近更新 更多