部署时排除文件必须在deployment配置的excluded paths中显式添加路径规则,.gitignore和mark as excluded无效;路径相对项目根目录,支持**通配符,规则按序匹配且区分大小写与斜杠。

部署时排除指定文件或目录,必须在 Deployment 配置的「Excluded Paths」选项卡里显式添加路径规则——仅靠 .gitignore、Mark as Excluded 或 File Types 设置均无效。
Deployment 对话框里怎么填 Excluded Paths
Excluded Paths 是唯一对上传/下载行为生效的排除机制,它作用于部署动作本身,不依赖索引状态。
- 打开
Tools > Deployment > Configuration,选中你的服务器配置,切换到Excluded Paths选项卡 - 点击
+添加新规则,输入路径模式(支持通配符):
–storage/logs/**排除整个日志目录及其子内容
–**/*.log排除所有层级的 .log 文件
–vendor/composer/autoload_*.php精确排除特定文件 - 路径是相对于项目根目录的,不能以
/开头;**表示任意深度嵌套,*只匹配单层 - 规则按顺序匹配,越靠前越优先;已匹配的路径不会继续向下判断
为什么 .gitignore 和 Mark Directory as Excluded 不起作用
这两者完全不参与部署流程:.gitignore 只影响 Git 操作,Mark as Excluded 只停用 IDE 索引和代码分析,但 Deployment 会照常同步这些文件。
- 常见误操作:把
node_modules右键设为Excluded后仍被上传——因为 Deployment 默认扫描整个项目根目录 - 验证方式:在
Remote Host工具窗口中右键目标文件 →Upload to …,看是否仍出现;若出现,说明未在Excluded Paths中配置 - 注意大小写和斜杠:Linux 系统下
Storage/Logs和storage/logs是不同路径,规则需严格一致
排除后如何验证是否真正生效
不能只看本地文件是否变灰,得确认部署动作实际跳过了目标路径。
- 执行一次手动上传:
Right-click project root > Upload to …,观察进度窗口中是否列出storage/logs/app.log类文件 - 检查远程主机工具窗口:展开对应服务器节点,确认
storage/logs/目录下没有新增或更新时间戳变化 - 如果用了 SFTP 连接,可临时在远程终端运行
ls -la storage/logs/,比对本地修改时间与远程最后变更时间是否脱节 - 特别注意递归性:
storage/logs/规则会排除该目录下所有内容,但storage/logs(无尾部斜杠)只匹配同名文件,不匹配目录
最容易被忽略的是:Excluded Paths 规则只对「自动同步」和「手动上传/下载」生效,对「上传当前文件」(如右键单个 .env → Upload to …)无效——这种操作会绕过所有排除逻辑,直接传输。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










