博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
thymeleaf修改css的link属性,实现动态控制css引入文件
阅读量:5174 次
发布时间:2019-06-13

本文共 1126 字,大约阅读时间需要 3 分钟。

后台管理系统设计了多套主题皮肤,希望能随意切换主题风格。

在只有一套主题的时候,是在主页面上引入该主题样式:

切换主题,其实就是切换css路径中的default为不同主题的值。如切换到block主题,只需修改为:

每次切换主题,来修改此处的代码,然后再显然不是一个Good idea.

 

下面记录下自己的两个想法:

一、通过在spring配置文件中设置project.theme;

project.theme = block

  在后台通过@Value等方法读取;

@Value("${project.theme}")    private String projectTheme;

  然后通过springMVC的Model、Map、ModelMap或者ModelAndView传到前端主页面;

model.addAttribute("projectTheme", projectTheme);

  主页面上通过input来保存这个主题值;

  然后js获取input的值,创建link标签,设置其href属性值,追加到主页面head中,

var theme = $("#theme").val(); loadTheme(theme);
function loadTheme(theme){    var link = document.createElement('link');        link.type = 'text/css';        link.rel = 'stylesheet';        if(theme)            link.href = '/public/themes/'+theme+'/css/main.css';        else            link.href = '/public/themes/default/css/main.css';        var head = document.getElementsByTagName('head')[0];        head.appendChild(link);}

  实现主题通过配置文件切换。

 

二、通过在页面上增加切换主题按钮,点击后修改数据库的主题字段值;

  后台读取该字段的值,传到前端主页面;

  后续步骤可以参考上面的。

  在页面上点击切换按钮,就修改了主题风格。

 

备注:其实一开始是想这样修改的,然而没有成功:

  后面大佬指导,此方法可行,是这样的:

 

 

转载于:https://www.cnblogs.com/xphhh/p/11331093.html

你可能感兴趣的文章
BestCoder-Round#33
查看>>
Codeforces Round #527 (Div. 3) D1. Great Vova Wall (Version 1)
查看>>
集合,ArrayList练习
查看>>
宋体汉字字号和点阵大小对应关系
查看>>
动力学公式…
查看>>
[BZOJ1500][NOI2005]维修数列
查看>>
[OJ#15]TR #2 画心
查看>>
吴恩达机器学习笔记 —— 13 支持向量机
查看>>
k-means算法的优缺点以及改进
查看>>
Spring-Boot + MyBatis-Plus 踩坑记录
查看>>
复习--最小生成树&&并查集
查看>>
UML学习笔记<1>
查看>>
天书夜读:WinDbg配置和使用基础
查看>>
middleware
查看>>
c#如何实现自动更新
查看>>
winfrom桌面程序调用python解释器
查看>>
Activity代码结构
查看>>
分页,缓存,序列化,信号
查看>>
python中的变量
查看>>
Linux进程管理命令备忘
查看>>