RuntimeError(f"目录 '{directory}' 不存在") RuntimeError: 目录 'app/static' 不存在

Nav*_*ari 2 python

当我运行 server.py 文件时出现错误

File "C:\Users\nawin\AppData\Local\Programs\Python\Python38\lib\site-packages\starlette\staticfiles.py", line 57, in __init__
    raise RuntimeError(f"Directory '{directory}' does not exist")
RuntimeError: Directory 'app/static' does not exist
Run Code Online (Sandbox Code Playgroud)

服务器.py 文件

app = Starlette()
app.add_middleware(CORSMiddleware, allow_origins=['*'], allow_headers=['X-Requested-With', 'Content-Type'])
app.mount('/static', StaticFiles(directory='app/static'))
Run Code Online (Sandbox Code Playgroud)

python 版本 3.8 操作系统 Windows 10

fqu*_*nto 5

了解程序的执行路径非常重要(对于GNU/Linux环境):

如果您有这样的工作目录:~/working/myprogram

第一个案例

  1. 首次访问您的工作目录:cd ~/working/myprogram
  2. 执行:python3 mysuper.py

然后就可以毫无问题地执行了。

第二种情况

但如果你在另一个目录中:

  1. 转到桌面文件夹:cd ~/Desktop
  2. 执行:python3 ~/working/myprogram/mysuper.py

在第二种情况下你会遇到问题。为了避免这种情况,有一个建议(很丑陋),但可以是:

import os
script_dir = os.path.dirname(__file__)
st_abs_file_path = os.path.join(script_dir, "static/")
app.mount("/static", StaticFiles(directory=st_abs_file_path), name="static")
Run Code Online (Sandbox Code Playgroud)