我正在尝试使用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
的错误加载上。如果有人可以解释这里发生的事情并解决此问题,我将非常感激。
答案 0 :(得分:0)
在创建烧瓶应用程序时,您需要设置static_folder
(文件实际所在位置的完整路径)和static_url_path
(该目录的URL路径)配置选项。
有关详细信息,请参见flask API参考:https://flask.palletsprojects.com/en/1.0.x/api/
通常我将所有静态资产放在web
目录下,例如web/js
,web/css
等。然后我有了static_folder=os.path.join(os.getcwd(), 'web')
和static_url_path=''
。然后,在我的模板中,我可以像这样引用这些资产:
<link rel="stylesheet" href="/css/main.css">