Spaces:
Runtime error
Runtime error
#!/usr/bin/env python3 | |
""" | |
Gradio set_static_paths() English demo | |
Run: python app.py | |
Requires: pip install "gradio>=5.31.0" | |
""" | |
from pathlib import Path | |
import gradio as gr | |
# -------------------------------------------------------------------- | |
# 1) Tell Gradio which directory should be exposed as a static folder. | |
# -------------------------------------------------------------------- | |
BASE_DIR = Path(__file__).resolve().parent | |
STATIC_DIR = BASE_DIR / "static" # ./static | |
gr.set_static_paths([STATIC_DIR]) | |
# -------------------------------------------------------------------- | |
# 2) Build a minimal UI that references the static assets. | |
# -------------------------------------------------------------------- | |
with gr.Blocks(title="Static Assets Demo") as demo: | |
gr.Markdown("## Static assets served via gr.set_static_paths()") | |
# Link to the static HTML page | |
gr.HTML( | |
'<a href="/gradio_api/file=static/index.html" target="_blank">' | |
"Open index.html" | |
"</a>" | |
) | |
# Display the static image | |
gr.HTML( | |
'<img src="/gradio_api/file=static/logo.png" style="max-width:200px;">' | |
) | |
# -------------------------------------------------------------------- | |
# 3) Launch! allowed_paths keeps working even if you remove set_static_paths. | |
# -------------------------------------------------------------------- | |
if __name__ == "__main__": | |
# 添加自定义JS抑制重复渲染 | |
demo.load( | |
None, | |
None, | |
None, | |
js=""" | |
() => { | |
// 标记已初始化,避免重复操作 | |
if (!window.__gradio_initialized) { | |
window.__gradio_initialized = true; | |
// 这里放置仅需执行一次的代码 | |
} | |
} | |
""" | |
) | |
demo.launch( | |
server_name="0.0.0.0", | |
server_port=7860, | |
allowed_paths=[STATIC_DIR], # optional but recommended | |
) | |