我遇到以下問題:YAML - Escape 雙引號
Classic symfony 2 project,phpunit 5.1.7。
在一個陽明配置文件,我有這樣的事情:
mobile_detect:
service:
mobile_detector: mobile_detect.mobile_detector.default
twig_extension_class: "SunCat\MobileDetectBundle\Twig\Extension\MobileDetectExtension"
我跑我的本地機器上測試(Ubuntu的),一切工作正常。
然後我部署代碼(aws環境)並嘗試運行測試。一切都失敗,錯誤:
"Unescaped character \M".
我看到,在YAML雙引號解析字符串,這樣\ M是確實是一個未定義的字符。我的問題是...爲什麼它在本地工作文件?
此外,當我嘗試訪問正常(通過apache - 瀏覽器調用)時,代碼工作正常。爲什麼這也運作良好?
我想正確的做法是用單引號替換所有的雙引號,但這將是非常耗時的(不能在一些情況下使用它們,像可能已經預期的那樣替換所有的原因)。有沒有什麼辦法可以在測試機器上進行測試來解釋yml,就像它們在本地機器上一樣?
如何在aws環境中部署代碼?檢查是否可能是傳輸過程中的編碼設置 – Matteo
這也是我的第一次猜測,但編碼很好,我也在測試env上手動編寫了文件(出現了相同的問題)。我猜是一個phpunit的東西,因爲如果有正常的請求,代碼運行正常。 – zozo
關於部署(忘記提及它)我正在使用彈性beanstalk進行部署。它基本上是用你的代碼創建一個圖像,從特定的圖像重寫環境,然後複製代碼圖像。之後,它運行作曲家,並調用一些自定義腳本(這不應該影響當前問題)。 – zozo