2011-11-14 45 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中托管它们。