2012-04-26 128 views
1

在客户端使用LESS的说明尽可能简单,但仍然由于某种原因,它不适合我。[1]LESS客户端不为我工作

我得到Firebug的控制台上的错误:

http://i.stack.imgur.com/NbIJP.jpg

如果我去书面那里home.less文件的URL,我看到的内容(他们基本上我用的是相同的CSS直到现在,我重新命名了,因为我刚开始使用LESS并且还没有做任何事情)。

代码中的唯一JavaScript(与代码中的URL相同)只是少于-1.3.0.min.js而被重命名。

这是一个完整的HTML:

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <meta http-equiv="Content-Language" content="es_ES" /> 

    <link rel="stylesheet/less" type="text/css" href="http://domain.dev/css/home.less?id=1" /> 
     <script src="http://domain.dev/js/generated/home.js?id=1" type="text/javascript"></script> 
</head> 
<body> 
</body> 
</html> 

任何想法,我究竟做错了什么?

解决方法/编辑:好吧,我想清楚是什么问题。显然,如果你在LINK标签上引用的.less文件不在同一个域中(即使不同的子域不能工作,就像我的情况那样),LESS不会工作在客户端(带less.js和all)。我不知道LESS有这个限制,因为CSS没有这个限制。他们应该在文档中警告这一点。

+6

我想,因为less.js是一个客户端JavaScript,问题出在[同源策略](http://en.wikipedia.org/wiki/Same_origin_policy).. 。JS无法访问来自域的文件,与源文件不同! – drinchev 2012-04-29 07:32:06

回答

0

正如@drinchev所提到的,less.js是一个客户端JavaScript,因此您最终会出现跨域问题。这可以通过增加CORS来解决,请参阅:http://enable-cors.org/。在已安装home.less的域上,服务器应发送Access-Control-Allow-Origin:*标头。

less.js使用支持大多数现代浏览器的CORS的XMLHttpRequests加载较少的文件,请参阅http://caniuse.com/#search=cors。更多细节可以在http://www.html5rocks.com/en/tutorials/cors/