less.modifyVars不更新less变量
我的项目需要有一个用户可编辑的主题。这意味着用户应该能够更改应用程序中使用的不同颜色 我已经将less.js(版本1.7.0)导入到我的项目中,并且我已经成功地从javascript调用了less.modifyVars()函数,但是由于某些原因,我的less文件没有得到更新 我的样式表是由grunt动态编译的。这是HTML头部的代码:less.modifyVars不更新less变量,less,gruntjs,less.js,Less,Gruntjs,Less.js,我的项目需要有一个用户可编辑的主题。这意味着用户应该能够更改应用程序中使用的不同颜色 我已经将less.js(版本1.7.0)导入到我的项目中,并且我已经成功地从javascript调用了less.modifyVars()函数,但是由于某些原因,我的less文件没有得到更新 我的样式表是由grunt动态编译的。这是HTML头部的代码: <link rel="stylesheet/less" type="text/css" href="/static/<%= grunt.config.
<link rel="stylesheet/less" type="text/css" href="/static/<%= grunt.config.get('pkg.name') %>.css"/>
我知道它正在被成功调用,因为我可以在浏览器控制台中看到:
less: parsed http://localhost:3000/static/app.css successfully. less-1.7.0.js:7297
less: css for http://localhost:3000/static/app.css generated in 181ms less-1.7.0.js:7297
less: less has finished. css generated in 182ms
但问题是,当我检查假定已更新的CSS文件时,使用变量@mainColor的不同属性没有用新颜色更新
即使在浏览器控制台中运行该命令,也不会更新CSS中的任何内容
我到处找了,不知道还能做什么。关于我可能做错了什么,或者我可以做些什么来让这项工作正常运行,还有什么其他想法吗?Hmm,所以您正在编译您的较少文件服务器端。但是,然后将
less.js
脚本包含到HTML中,并在那里调用less.modifyVars
,但是这样,浏览器端的less副本与服务器端构建脚本无关,它根本不涉及服务器端构建链,也不会影响CSS。或者换句话说,如果你编译服务器端,你不需要也不应该在你的HTML中包含less.js
,因为它在那里什么也做不了(因为HTML已经得到编译过的CSS)。@seven phases max-明白。但是我想少用.js的原因是,我可以在我的应用程序中加入可定制主题的功能。我需要能够更新较少的变量,并在运行时反映对页面的更改。考虑到应用程序最初已经编译了less文件服务器端,您认为这是可能的吗?浏览器端less脚本无法修改预编译的CSS(仅仅因为它只是一个CSS),因此您需要首先链接到要应用的less文件modifyVars
(例如
)或者在第一次modifyVars
呼叫之前切换到它。@最多七个阶段-感谢您的澄清和帮助!我会试着看看是否能执行你的建议。
less: parsed http://localhost:3000/static/app.css successfully. less-1.7.0.js:7297
less: css for http://localhost:3000/static/app.css generated in 181ms less-1.7.0.js:7297
less: less has finished. css generated in 182ms