2015-12-10 190 views
2

我剛剛安裝了Yii2高級版的全新副本,並且無法加載樣式表。這個錯誤似乎是Yii(或web服務器)無法創建路徑/var/www/frontend/web/assets/1ecfb338/css,儘管在同一個http請求中這樣做是錯誤的。即使在虛擬機之外和虛擬機之外強化777的文件權限之後,Yii似乎也沒有進一步嘗試編寫樣式表。Yii2無法寫入資產文件夾

enter image description here

如果我只是刷新頁面加載沒有錯誤,但樣式表bootstrap.css目錄尚未創建。

這是最令人沮喪的。有沒有人有任何想法?

如果很重要我在帶有Virtualbox的Vagrant VM中運行Yii。 Debian是VM OS,Ubuntu是主機。

+0

提供對資產文件夾的寫入權限。 – Criesto

+1

您只需使用終端'sudo chmod -R 777/var/www/frontend/web/assets'應用此權限 – vishuB

+0

嗨杜比:如果@ vishu answer幫助了您。然後,請將它勾選爲正確的流水線。因爲它可以幫助其他用戶輕鬆找到它。謝謝。 –

回答

2

這是很奇怪的,在以前沒有經歷過這一點。我可以通過將模式更改爲777 作爲超級用戶外部虛擬機來糾正此問題。在虛擬機裏做同樣的事情沒有什麼區別。

我以前曾使用這種設置進行過許多項目,但之前沒有這樣做。我使用的是可能是負責軟件是:

主機:

  • 的Ubuntu 14.04
  • 流浪1.7.4
  • VirtualBox的30年3月4日

虛擬機:

  • Debian的傑西
  • Nginx的1.6.2
  • PHP 5.6.14

編輯:我發現,我已經定義不正確的同步文件夾。我不得不改變這個規則:

config.vm.synced_folder "./", "/var/www", id: "vagrant-root", :group=>'www-data', :mount_options=>['dmode=775,fmode=775'] 
+0

非常感謝,您編輯的答案適合我。 –

+0

這個答案完全解釋了發生了什麼以及如何解決它。但更具體地說,它會更好地讓fmode在664. 您可以在這裏找到更多信息 http://jeremykendall.net/2013/08/09/vagrant-synced-folders-permissions/。 但是,總結一下, 這是修復問題的線路 'config.vm.synced_folder「./」,「/ var/www」,id:「vagrant-root」,:group =>'www -data',:mount_options => ['dmode = 775,fmode = 664']' –

1

你只要給許可喜歡特定的目錄:

sudo chmod -R 777 /var/www/frontend/web/assets 
+0

或者'sudo chgrp -R www-data/var/www/frontend/web/assets'只需更改組(稍微安全一些)。 – tarleb

+0

我想我沒有解釋得很好。權限是正確的,Yii正在創建目錄,但仍然是錯誤。也許錯誤發生是因爲它試圖在已經存在的目錄中創建目錄(因爲它剛創建它)。我想我將不得不看Yii的來源,以瞭解正在發生的事情。 – Dubby

相關問題