【分享】修改自定义属性之后排错


(Shuai Zend) #1

'Error: Invalid CSS after “…a6c8d !default;”: expected “}”, was “$20171016102600: un”\A on line 10 of theme_variable.scss\A >> $love: #fa6c8d !default;\A ------------------------^\A ’

朋友修改了他自己的discourse自定义,然后站就被他玩坏了。
所有页面提示:

'Error: Invalid CSS after "...a6c8d !default;": expected "}", was "$20171016102600: un"\A         on line 10 of theme_variable.scss\A >> $love: #fa6c8d !default;\A    ------------------------^\A '

蛋疼的是连备份页面都不能打开,我还说恢复备份来着。。看来官方还要再出一个命令行备份及恢复才行。

折腾了一天终于解决,这里分享一下过程

建议:如果你跟着我的方法做,最好先备份,因为需要直接操作数据库.

首先我是google查各种资料,但是所有的资料都是说rebuild之后就好了。
但是在我这里就不行,
根据错误提示,我知道肯定是修改自定义css的时候语法错了,但是就是没有找到错误提示的这个
theme_variable.scss
既然找不到文件,那我就去数据库里找吧。
首先是进入/var/discourse,输入命令:

./launcher enter app

然后切成postgresql用户:

su postgres

然后进入数据库

psql discourse

然后翻了N次数据库终于让我找到了:

select * from color_scheme_colors;

在这个表中,发现有同名的love name,刚好值也能和报错能提示能对应上。
然后删除这个值.

delete from color_scheme_colors where id = 20; //id 20是重复的值。看你自己的情况

另外还需要删掉:

discourse=# select * from theme_fields;
discourse=# delete from theme_fields where id =1 //根据自己的情况修改,别盲目删除。

然后重新编译。。

好了,解决完毕。打完收工。

根据排错,基本可以认定,错误原因是因为设置自定义属性的时候,设置了一个重复的值,造成本次事故。