less.modifyVars不更新less变量

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.

我的项目需要有一个用户可编辑的主题。这意味着用户应该能够更改应用程序中使用的不同颜色

我已经将less.js(版本1.7.0)导入到我的项目中,并且我已经成功地从javascript调用了less.modifyVars()函数,但是由于某些原因,我的less文件没有得到更新

我的样式表是由grunt动态编译的。这是HTML头部的代码:

<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