我在 Automator 作業流程中定義 HTML 檔案的相對路徑時遇到問題。
問題:
檔案結構如下:
便攜式檔案夾
- Automator.app
- Chromium.app
- assets 檔案夾 -- HTML 檔案 (my-file.html)
我使用 Automator 構建了一個簡單的應用程式,它啟動 Chromium 的新實體(便攜式)并在執行時顯示本地 HTML 檔案。HTML 檔案的路徑是我遇到問題的部分。
Automator 作業流程的第一部分是一個 Applescript,它將作業目錄設定為 .app 檔案的位置。
on run {input, parameters}
set p to path to me
return p
end run
Automator 作業流程的第二部分是一個 shell 腳本,它應該在提供的 Chromium 瀏覽器中打開 HTML 檔案。
APP_PATH=$1
cd "$APP_PATH"
# open chromium from current directory
open -n -a Chromium.app --args --user-data-dir='/tmp/chrome_dev_test' --allow-file-access-from-files --allow-file-access --allow-running-insecure-content '/assets/my-file.html'
當雙擊我的 Automator 應用程式并嘗試打開 HTML 檔案但找不到它時,瀏覽器會按預期打開。地址欄顯示了我指示它打開的 HTML 檔案的路徑,所以它正在嘗試。拖放到瀏覽器中時 HTML 檔案顯示正常(包含的 --args 沒有問題)。
我不確定要在我的檔案位置前添加什么內容才能正確打開 HTML 檔案。使用 cd "$APP_PATH" 指令,我相信我已將作業目錄設定為“便攜式檔案夾”,因此“/assets/my-file.html”將是我要打開的檔案的相對路徑。
Automator 應用程式和保存 HTML 頁面的 assets 檔案夾將始終位于同一檔案夾中,因此它們的關系將始終相同。包含所有必要檔案的整個檔案夾是可移植的,因此它在用戶系統上沒有定義的位置。它可以從 USB 密鑰或桌面或任何地方運行。
我如何格式化我的 shell 腳本中的 URL 以識別 HTML 檔案的完整路徑,因為它是可移植的,但相對于 "$APP_PATH" 總是具有相同的位置?
uj5u.com熱心網友回復:
首先 p 是一個 AppleScript 別名說明符,你需要一個 POSIX 誓言。
其次 p 指向應用程式本身,但您需要對父檔案夾的參考。
System Events為您提供父檔案夾的 POSIX 路徑。附加檔案夾名稱和 HTML 檔案的名稱
on run {input, parameters}
set p to path to me
tell application "System Events" to set parentFolder to POSIX path of container of p
return parentFolder & "/assets folder/my-file.html"
end run
assets folder代表檔案夾的名稱
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/511310.html
