1 回答

TA貢獻1871條經驗 獲得超13個贊
它從未在運行時使用的 composer.json 文件。無論如何它沒有用,它只被composer命令使用。如果您不在 composer生產機器上運行,則無需上傳它。
您的項目并沒有失敗,因為“您沒有使用代碼部署 composer.json”,而是因為您正在轉儲具有特定結構的自動加載器,您實際上在配置中提到了該composer.json結構,然后嘗試使用不同的目錄結構運行服務器.
當您運行composer install并且composer dumpautoloader您的項目如下所示:
composer.json
src/ <--- this is where autoloader looks for your files.
--- yourCode/
--- moreCode/
--- vendor/
------ autoloader.php
但是然后在您的服務器上,您在您的服務器上
yourCode/
moreCode/
vendor/
--- autoload.php <--- this can't find the 'src' directory
解決方案不是上傳目錄的內容,src而是上傳src目錄本身。
任何其他需要使用自動加載器的腳本和其余代碼都應該包含在內/var/www/test/src/vendor/autoload.php,并且一切都會正常工作。
如果你不想在src里面有一個目錄test,那么你不應該在自動加載器生成期間擁有它。不要使您的開發和登臺環境與您的生產環境不同。
你唯一的選擇是在你的構建機器上做:
跑 composer install
搬到composer.json_src
更改composer.json因此鍵上聲明的路徑autoload不提及src
跑 composer dumpautoload
刪除 composer.json
上傳src內容。
它不能保證工作并且它是一個脆弱的解決方案,但問題是您試圖以與工具設計背道而馳的方式使用該工具。
- 1 回答
- 0 關注
- 645 瀏覽
添加回答
舉報