2011-11-14 79 views
3

我在本地開發中使用我的Django站點的CSS較少。一切都很美好。我包括的文件如下:如何使用較少的CSS將項目部署到Heroku?

<link rel="stylesheet/less" type="text/css" href="{{ STATIC_URL }}less/base.less"> 
<script src="{{ STATIC_URL }}js/less-1.1.3.min.js" type="text/javascript"></script> 

但是,當我將項目部署到Heroku時,更少的CSS莫名其妙地不起作用。我有什麼錯誤?

我知道一個事實,我有正確的靜態媒體設置:我可以從正確的路徑下載base.less和less-1.1.3.min.js就好。

注意:我意識到最好編譯和縮小用於生產的.less文件,但這僅僅是用於開發目的的臨時服務器。注意2:如果你知道如何在Heroku部署過程中添加Less CSS的編譯,而不必安裝node.js,那麼除了我的主要問題之外,我還有興趣學習如何做到這一點。

+0

如何在heroku(打開頁面和查看源代碼)中解析的url看起來像?你提到的「正確路徑」是什麼? – Lycha

+0

它看起來像這樣。如果我打開任一網址,則2個文件都可以正常加載。 (名稱改變隱私) <鏈路的rel = 「樣式表/少」 類型= 「文本/ CSS的」 href = 「https://s3.amazonaws.com/mysitehere/less/base.less」>

回答

2

的問題是,通過less.js XHR加載.LESS樣式,這除非你設置相應的訪問控制允許來源頭,其中S3不允許(HTTPS不起作用://論壇.aws.amazon.com/thread.jspa?線程ID = 34281)。

作爲一種解決方法,有些人建議設置一個HTTP代理,它會添加必要的頭文件。 (http://motoole.com/2011/10/19/hosting-font-face-fonts-on-s3.html)和(http://zefer.posterous.com/pure-html-ajax-solutions-to -upload-files-to-s)

否則,你將不得不將編譯.less文件到CSS,因爲less.js不會工作。

當然,另一個選擇(我使用的)是簡單地將靜態文件部署到Apache服務器,而不是在S3中託管它們。