2012-09-05 26 views

回答

6

您需要檢查的第一件事是資產是否存在於您的應用程序中。在build.sh腳本之前運行This script(後面會提到)。它會嘗試爲您的public/assets文件夾(here is the reasoning behind this)創建符號鏈接。即使您有該目錄,rake任務仍然可以工作;這些資產只會被一舉消滅。

無論何時您推送到您的git存儲庫,您的資產都應該編譯。這由Ruby 1.9磁帶盒中的this script負責(這是由服務運行的,您無法控制它)。正如你所看到的,只要你有一個Gemfile文件(對於所有Rails應用程序都應該是這種情況),它將運行bundle exec rake assets:precompile

儘管如此,你應該做的第一件事是檢查你的.openshift/action_hooks,以確保你沒有運行任何可能覆蓋你的public/assets目錄的東西。您可以將它們與here進行比較。

你應該做的下一件事實際上是檢查OpenShift主機上的目錄。你可以通過SSH進入你的應用(instructions are here)。然後檢查你的public/assets目錄。注意:部分輸出已縮短爲....

# First we make sure it is a symlink. 
> file $OPENSHIFT_REPO_DIR/public/assets 
..../app-root/runtime/repo/public/assets: symbolic link to `..../data//assets' 

# Then we see if there is anything in it 
> ls $OPENSHIFT_REPO_DIR/public/assets 
.... (should have a bunch of.js, .css, etc files) 

如果該目錄爲空,可能是編譯資產時出現問題。你應該注意輸出,當你git push,看看是否有任何跡象表明它失敗(你可能想要捕獲輸出使用tee,如:git push 2>&1 | tee git_push.log)。如果目錄中有資產,請按照these steps檢查您的日誌。

如果你仍然有問題,擺動我們IRC channel和有人應該能夠親自幫助。

+0

感謝真棒回答:)我希望我可以給更多的票:) – phoenixwizard