upload_on_save不生效是因为项目未真正绑定远程配置:必须通过侧边栏右键项目根目录→SFTP→Map to Remote…生成sftp-config.json,且当前文件须在已映射目录内,upload_on_save须为布尔值true并置于配置根层级。

upload_on_save 不生效?先确认项目是否真正“绑定”了远程配置,而不是只装了插件或手动写了 sftp-config.json。Sublime Text 本身不支持远程开发,所谓同步只是本地编辑 + 自动上传的模拟流程,所有功能都依赖 SFTP 插件、项目绑定、配置文件三者严丝合缝——缺一不可。
右键没出现 SFTP 菜单?检查项目加载和插件版本
插件不会在任意上下文激活,它只响应「已加载的项目」中「侧边栏显示的文件夹」。
- 必须通过 Project → Add Folder to Project 把本地目录加进项目,让它出现在侧边栏顶层;只打开单个文件或用“Open Folder”临时视图,SFTP 菜单不会出现
- 右键目标只能是侧边栏中的文件夹图标本身,不是空白处、不是文件、也不是未保存的
untitled - Build 41xx(如 4143)必须装
SFTP-Next;Build 3xxx(如 3211)只能装作者为wbond的原版SFTP;装错会报ImportError: No module named 'urllib3'或菜单直接消失 - 安装后必须重启 Sublime Text,否则
Project菜单里看不到 SFTP,右键也无响应
sftp-config.json 放哪、怎么写、为什么静默失效
这个文件不是全局配置,而是严格绑定到你右键映射的那个文件夹根目录下,错一个字符就完全不生效。
- 文件名必须是
sftp-config.json(全小写、无空格、无额外后缀),不能是SFTP-config.json、sftp_config.json或sftp-settings.json - 必须放在项目根目录(即侧边栏最顶层那个文件夹)里,不能在子目录,也不能在桌面或用户主目录
-
host填 IP 或域名,不要带ssh://;端口单独写port字段,别拼在host后面 -
remote_path必须以/开头,结尾建议也加/(如"/var/www/html/"),否则路径拼接会偏移 - 密钥登录时删掉
password字段,用private_key(ST4)或ssh_key_file(ST3),值必须是绝对路径:"/home/you/.ssh/id_rsa"或"C:/Users/You/.ssh/id_rsa";相对路径、~展开、权限非600都会导致Permission denied (publickey)
upload_on_save 设为 true 却不上传?排查三个隐性前提
这个布尔值开关只是触发器,真正决定是否上传的是项目上下文、路径匹配和配置位置。
-
upload_on_save必须写成true(布尔值),不能写"true"(字符串),也不能嵌套在files或sync_down_on_open下面 - 当前文件必须在已映射的项目文件夹内及其子目录下;打开桌面一个
index.js,哪怕同目录有sftp-config.json,也不会上传 - 必须通过侧边栏右键本地文件夹 →
SFTP → Map to Remote…(或Setup Server)完成绑定;手动新建sftp-config.json不会自动激活映射 - 服务器上
remote_path对应目录必须存在,否则静默失败;建议先ssh登录执行mkdir -p /var/www/html/myapp - 网络抖动或服务器响应慢时,默认 3 秒超时会静默失败;可在配置里加
"timeout": 10提高容忍度
上传后网页打不开?权限错乱和双向同步陷阱
默认上传权限是 600,Web 服务(Nginx/Apache)通常拒绝读取,必须显式覆盖。
- 加
"default_permissions": "644"(文件)或"755"(目录),注意值是字符串,不是数字 -
sync_down_on_open是唯一能拉取远程变更的开关,但它只在打开文件那一刻触发一次,不是实时监听;启用后若本地有未保存修改,会弹窗提示冲突,必须手动选Use Remote或Use Local - 插件无锁机制,也不做文件内容比对,
upload_on_save是单向强覆盖;不要把它当rsync或git用,团队协作务必配ignore_regexes(如["\.git", "\.log$", "node_modules/"]) - 调试上传失败时,按
Ctrl+Shift+P输入SFTP: Show Console查看完整错误,比弹窗提示更具体
upload_on_save 就会静默失效,连错误都不报。


















