簡體   English   中英

如何使用 Python Flask 加載共享的 static 文件?

[英]How to load shared static files with Python Flask?

我們有一個運行基本 LAMP 堆棧的服務器。 我們的團隊有一些現有的 PHP 應用程序,但我們將繼續使用 Python/Flask(我們都是 Flask 的新手,因此出現了一系列愚蠢的問題)。 PHP 頁面使用一些共享的 css 和 js 文件,其中包括引導程序以及我公司構建的自定義引導程序擴展。 由於這些文件在切換到 Flask 之前就存在,因此它們顯然位於我的 Flask 應用程序的目錄結構之外。 我可以通過在 Flask 應用程序的 static 目錄中創建指向它們的符號鏈接來使用這些共享文件,但顯然我公司的自定義引導擴展包含一些字體文件,Z9784E91C7B2657917AFZ26BC8 無法加載:

<my-ip-addr> - - [17/May/2021 09:35:11] "GET /fonts/Neue-haas/display-bold-75.woff2 HTTP/1.1" 404 -
<my-ip-addr> - - [17/May/2021 09:35:11] "GET /fonts/fontawesome-webfont.woff2?v=4.7.0 HTTP/1.1" 404 -
<my-ip-addr> - - [17/May/2021 09:35:11] "GET /fonts/Neue-haas/roman-text-55.woff2 HTTP/1.1" 404 -
<my-ip-addr> - - [17/May/2021 09:35:11] "GET /fonts/Neue-haas/display-bold-75.woff HTTP/1.1" 404 -
<my-ip-addr> - - [17/May/2021 09:35:11] "GET /fonts/fontawesome-webfont.woff?v=4.7.0 HTTP/1.1" 404 -
<my-ip-addr> - - [17/May/2021 09:35:11] "GET /fonts/Neue-haas/roman-text-55.woff HTTP/1.1" 404 -
<my-ip-addr> - - [17/May/2021 09:35:11] "GET /fonts/Neue-haas/display-bold-75.ttf HTTP/1.1" 404 -
<my-ip-addr> - - [17/May/2021 09:35:11] "GET /fonts/fontawesome-webfont.ttf?v=4.7.0 HTTP/1.1" 404 -
<my-ip-addr> - - [17/May/2021 09:35:11] "GET /fonts/Neue-haas/roman-text-55.ttf HTTP/1.1" 404 -

自定義引導擴展嘗試像這樣加載這些 fonts: url(../fonts/Neue-haas/roman-text-55.woff2) format("woff2") 我在我的 Flask 應用程序的主目錄中創建了一個fonts目錄並將這些 fonts 復制到其中。 為什么 Flask 應用程序找不到這些 fonts?

這是我的base.html模板:

<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="description" content="">
        <meta name="author" content="">
        <title><*some title*></title>
        <!-- Bootstrap core CSS -->
        <link href="{{url_for('static', filename='bootstrap.min.css')}}" rel="stylesheet">
        <link href="{{url_for('static', filename='<*custom-bootstrap-extension-name*>.min.css')}}" rel="stylesheet">
<!  This part I added in response to Jason's comment -->
        <style>
            @font-face {
               font-family: "FontAwesome";
               src: url("/static/fontawesome-webfont.woff2?v=4.7.0");
           }
        </style>
    </head>

    <body class="container">
        
        {{ header | safe }}
        {% block content %}{% endblock %}
        {{ footer | safe }}

    </body>

    <script src="{{url_for('static', filename='jquery.min.js')}}"></script>
    <script src="{{url_for('static', filename='bootstrap.min.js')}}"></script>
    <script src="{{url_for('static', filename='<*custom-bootstrap-extension-name*>.min.js')}}"></script>

</html>

這對我有用:

@font-face {
    font-family: "FontAwesome";
    src: url("/static/fonts/fontawesome-webfont.woff2");
}

我為每種未加載的字體添加了其中一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM