因为服务端要把项目路径传过来,css内的图片都在这个路径下,所以请问有什么办法直接把值传进less里?
可以通过动态生成 LESS 的方式来实现,但是要求浏览器是直接获取 LESS 由 JS 来解释。
如果是构建时生成的 CSS,可以用动态生成 CSS 的办法(可以动态生成 LESS,再后台调用工具处理成 CSS)
动态是指通过程序(或+模板)的方式来生成,和动态生成 HTML 原理一样
不过这种做法对运行资源消耗比较大,所以建议还是在构建期生成 LESS 比较好,可以根据发布目标,通过模板的方式来处理,最简单的方式就是根据目标服务器,生成引入变量文件(可以用 @import
引入),或者在原 LESS 前插入变量,再由 LESS 生成 CSS。
刚刚看了less的文档,其实是有办法向less传值的,无论是服务端编译,还是浏览器端编译。
文档:http://lesscss.cn/usage/#v2-upgrade-guide-programmatic-usage
浏览器端
在浏览器端可以通过在加载less.js文件之前写一下设置
而其中
globalVars
就可以写自定义变量,这些变量在less文件中是可以直接用的然后
rootpath
是A path to add on to the start of every URL resource.
就是less中所有路径的根目录地址,就是我问题中要解决的问题。服务器端
自己去上面的网页看吧...文字好长我没看完,我用的是浏览器编译所以只看了我要的那部分...抱歉