为什么Flask无法正确加载HTTP1.1?

时间:2019-08-02 08:47:57

标签: flask

我正在尝试使用Flask制作一个简单的应用程序。应用程序的文件位于目录app中,Flask使用此目录作为根目录。

在目录app中,我有一个包含HTML文件的子目录templates。该文件包含以下行

<link rel="stylesheet" href="js-css/stylesheet.css">
<script src="js-css/jquery-3.3.1.js"></script>
<script src="js-css/javascript.js"></script>

在目录app中,我有一个包含这三个文件的子目录js-css

我使用PyCharm。当我启动该应用程序时,它会显示(按预期)

"C:\Program Files (x86)\Python37-32\python.exe" D:/python/genealogie/genealogie.py
 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

FireFox中,我转到地址localhost:5000时,模板文件出现了,但是显然找不到样式表。 PyCharm显示:

127.0.0.1 - - [02/Aug/2019 09:39:48] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [02/Aug/2019 09:39:48] "GET /js-css/stylesheet.css HTTP/1.1" 404 -
127.0.0.1 - - [02/Aug/2019 09:39:48] "GET /js-css/jquery-3.3.1.js HTTP/1.1" 404 -
127.0.0.1 - - [02/Aug/2019 09:39:48] "GET /js-css/javascript.js HTTP/1.1" 404 -
127.0.0.1 - - [02/Aug/2019 09:39:48] "GET /js-css/javascript.js HTTP/1.1" 404 -

问题似乎出在HTTP/1.1的错误加载上。如果有人可以解释这里发生的事情并解决此问题,我将非常感激。

1 个答案:

答案 0 :(得分:0)

在创建烧瓶应用程序时,您需要设置static_folder(文件实际所在位置的完整路径)和static_url_path(该目录的URL路径)配置选项。

有关详细信息,请参见flask API参考:https://flask.palletsprojects.com/en/1.0.x/api/

通常我将所有静态资产放在web目录下,例如web/jsweb/css等。然后我有了static_folder=os.path.join(os.getcwd(), 'web')static_url_path=''。然后,在我的模板中,我可以像这样引用这些资产:

<link rel="stylesheet" href="/css/main.css">