【问题标题】:Why doesn't Uvicorn pick up Changes to CSS files?为什么 Uvicorn 不接收对 CSS 文件的更改?
【发布时间】:2022-10-04 17:53:52
【问题描述】:

我正在使用 FastAPI 和 Uvicorn 服务器来构建网站,但是当我对 CSS 文件进行更改并重新加载网页时,它不会获取这些更改。

事实上,即使我关闭服务器并重新加载它,Uvicorn 仍然没有接收到对 CSS 文件的更改。

以前,服务器很好地接受了更改,是什么导致了这种变化?

【问题讨论】:

  • 看来这实际上是我正在使用的浏览器上的刷新按钮的问题!
  • shift+reload 通常会使浏览器跳过本地缓存并从服务器重新加载

标签: css fastapi reload uvicorn


【解决方案1】:

问题不在于 Uvicorn,而在于您的网络浏览器在其缓存中存储“静态”文件。

FastAPI 使用method 提供特定目录作为“静态文件夹”。这告诉服务器这个目录中的文件应该保持不变,不需要每次加载网页时都下载。

检查您用于设置应用程序的 Python 模块内部,并查找以下代码:

app.mount(
    "/your_static_file_web_path",
    StaticFiles(directory="your_static_directory"),
    name="your_name_for_static_app"
)

此函数在您现有的处理所有静态文件的应用程序中创建第二个 FastAPI 应用程序。对于这个问题,最重要的部分是第二个参数,它定义了你的静态文件目录。该目录中的任何内容最终都会被您的 Web 浏览器缓存,这会阻止您的浏览器注意到对这些文件的任何更改。

如上面评论中所述,如果您想解决此问题,您可以按住 shift 并重新加载网页 - 这称为 hard refresh。硬刷新将迫使您的浏览器重新下载所有内容,包括静态文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-28
    • 2021-10-14
    • 1970-01-01
    • 2023-02-03
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多