macOS Automator中如何使用相对路径调用本地HTML文件
解决Automator工作流中本地HTML相对路径问题
问题分析
你的脚本核心问题是路径处理逻辑错误:
$APP_PATH是Automator.app的完整路径(比如/xxx/portable folder/Automator.app),执行cd "$APP_PATH"会进入该App的包内容目录,而非portable folder根目录- 直接使用
/assets/my-file.html是系统根目录下的绝对路径,并非你实际的portable folder/assets目录
修正后的Shell脚本
APP_PATH="$1" # 获取Automator.app所在的父目录(即portable folder根目录) PARENT_DIR=$(dirname "$APP_PATH") # 拼接HTML文件的完整本地路径 HTML_FILE="$PARENT_DIR/assets/my-file.html" # 转换为Chromium兼容的file://协议路径(处理空格等特殊字符) FILE_URL="file://$(realpath "$HTML_FILE")" # 启动便携版Chromium并打开目标HTML open -n -a "$PARENT_DIR/Chromium.app" --args \ --user-data-dir='/tmp/chrome_dev_test' \ --allow-file-access-from-files \ --allow-file-access \ --allow-running-insecure-content \ "$FILE_URL"
关键修改点
- 锁定便携根目录:用
dirname "$APP_PATH"拿到portable folder的路径,确保所有路径都基于这个可移动目录,满足便携需求 - 适配浏览器路径规则:转换为
file://协议路径,避免Chromium对本地文件路径解析出错 - 明确指定Chromium版本:用
"$PARENT_DIR/Chromium.app"启动当前便携目录内的Chromium,而非系统默认安装版本 - 处理特殊路径字符:
realpath自动转义路径中的空格等特殊字符,避免Shell解析报错
内容的提问来源于stack exchange,提问作者Cooper Lang
相关产品推荐
相关产品推荐

