Leaflet JavaScript库未检测到问题求助
我之前在Drupal项目里也碰到过完全一样的问题,结合你的操作情况,给你几个针对性的排查方向:
检查Leaflet库的文件结构是否正确
很多人会踩这个坑:解压Leaflet压缩包后,直接把带版本号的文件夹(比如leaflet-1.9.4)丢进sites/all/libraries/leaflet/里,导致实际核心文件路径变成sites/all/libraries/leaflet/leaflet-1.9.4/leaflet.js,模块根本找不到。正确的结构应该是sites/all/libraries/leaflet/下面直接存放leaflet.js、leaflet.css和images文件夹,没有额外的嵌套目录。确认文件权限是否符合要求
Drupal需要能正常读取库文件,建议把leaflet文件夹权限设为755,内部文件权限设为644。如果是Linux服务器,可以用命令行快速修正:chmod -R 755 sites/all/libraries/leaflet chmod 644 sites/all/libraries/leaflet/*.js sites/all/libraries/leaflet/*.css强制清除Drupal缓存
Drupal的缓存机制经常会“保留”旧的状态,哪怕你已经修复了文件路径,缓存没清还是会报错。你可以:- 登录后台进入配置 > 性能页面,点击“清除所有缓存”
- 若后台无法访问,用Drush命令:
drush cache-rebuild(缩写drush cr也可以)
核对库版本与模块的兼容性
不同版本的Leaflet模块对Leaflet核心库的版本有要求,比如部分旧版模块只支持Leaflet 1.x,如果你下载了最新的2.x库就会出现兼容问题。去你安装的Leaflet模块官方页面,查看它要求的库版本,然后下载对应版本重新上传。手动测试库文件的可访问性
在浏览器地址栏输入你的网站URL加上/sites/all/libraries/leaflet/leaflet.js,比如http://你的域名/sites/all/libraries/leaflet/leaflet.js,如果能正常打开并显示JS代码,说明路径没问题;如果返回404,要么是路径错误,要么是服务器的.htaccess文件限制了libraries文件夹的访问,需要调整配置。
按这个顺序排查下来,大概率能解决问题——我当时就是因为多嵌套了一层文件夹导致的错误,调整结构后清缓存就正常了。
内容的提问来源于stack exchange,提问作者Efe

