You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django-leaflet尝试加载不存在的static/src目录下JS文件求助

解决Django-leaflet请求static/src目录JS文件的问题

以下是几个排查和解决的方向:

  • 检查Django-leaflet的DEBUG配置
    Django-leaflet默认加载打包压缩后的Leaflet核心文件,如果你在项目settings.py中设置了LEAFLET_CONFIG的DEBUG为True,或者指定了非压缩版的资源路径,可能会触发加载源码目录的文件。检查你的配置:

    # settings.py 中是否有类似配置
    LEAFLET_CONFIG = {
        'DEBUG': True,  # 该配置会导致加载源码文件
        # 或者手动指定了错误的JS路径
        'JS_URL': '/static/src/leaflet.js'
    }
    

    把DEBUG改为False,或者移除错误的JS_URL配置,让插件使用默认的打包文件。

  • 查看{% leaflet_js %}渲染后的实际HTML
    打开极简页面的开发者工具(F12),查看页面渲染后的<script>标签,正常情况下{% leaflet_js %}应该生成指向打包文件的路径:

    <script src="/static/leaflet/leaflet.js"></script>
    

    如果渲染后的路径指向static/src/...,说明插件的静态文件安装或配置有问题。运行python manage.py collectstatic,确保Leaflet的静态文件被正确收集到项目的静态目录中,正确的结构应该是static/leaflet/下有leaflet.js、leaflet.css等文件,而非src目录。

  • 排查模板中的自定义引入
    检查项目中所有模板(包括base模板),是否有手动引入static/src/目录下Leaflet文件的代码,比如:

    <script src="{% static 'src/core/Util.js' %}"></script>
    

    这类手动引入会覆盖或补充插件的默认加载逻辑,导致请求不存在的文件。移除所有这类手动引入,只保留{% leaflet_js %}标签来加载核心文件。

  • 清理浏览器缓存或使用无痕模式
    浏览器可能缓存了旧的JS代码,其中包含请求src目录的逻辑。尝试强制刷新页面(Ctrl+Shift+R),或者用无痕模式打开页面,确认请求是否消失。

  • 排查第三方插件的错误引用
    如果你在项目中使用了Leaflet第三方插件,部分插件可能错误地引用了Leaflet源码目录下的文件,而非依赖打包后的leaflet.js。检查所有插件的JS代码,看是否有类似import '../src/core/...'或直接引用src路径的代码,替换为正确的依赖方式。

内容的提问来源于stack exchange,提问作者kysevenle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 17:40:27