"v3.1.0 简介 Solo v3.1.0 引入了一款新皮肤 Pinghsu,感谢原作者。另外,从该版本开始支持跨版本升级,降低用户升级成本。 [图片] 升级须知 升级前请备份数据库,以备发生不可预期的问题时进行回滚。 v3.1.0 变更记录 12647 支持跨版本升级 feature 12651 皮肤功能补全 ski .."

Solo v3.1.0 发布,新皮肤 Pinghsu

v3.1.0 简介

Solo v3.1.0 引入了一款新皮肤 Pinghsu,感谢原作者。另外,从该版本开始支持跨版本升级,降低用户升级成本。

升级须知

升级前请备份数据库,以备发生不可预期的问题时进行回滚。

v3.1.0 变更记录

历史版本变更请浏览这里

  • Solo

    Solo 是一款小而美的 Java 博客系统,通过一个命令就可以启动使用。

    529 引用 • 4202 回帖 • 720 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    2154 引用 • 7288 回帖 • 1049 关注
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    215 引用 • 2293 回帖 • 1048 关注
  • 博客

    记录并分享人生的经历。

    157 引用 • 1770 回帖
感谢    关注    收藏    赞同    反对    举报    分享
69 回帖    
请输入回帖内容...
  • 1437    

    2.x 的版本可以直接升级到 3.1.0 吗?

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • 88250            

    2.x 只能一个版本一个版本升级哦。

    感谢    赞同    反对    举报    分享       回复
  • xiluotop      

    前排喊一波 666

    感谢    赞同    反对    举报    分享       回复
  • iTanken      

    这效率,没谁了,中午还在想 3.1 应该快发布了,没想到这么快 😆

    感谢    赞同    反对    举报    分享       回复
  • yvejohn      

    神了这迭代速度!👍

    感谢    赞同    反对    举报    分享       回复
  • iTanken      

    从 3.0 升级报错:

    [INFO ]-[2019-02-28 19:35:04]-[com.zaxxer.hikari.HikariDataSource:110]: HikariPool-1 - Starting...
    
    [INFO ]-[2019-02-28 19:35:08]-[com.zaxxer.hikari.HikariDataSource:123]: HikariPool-1 - Start completed.
    [INFO ]-[2019-02-28 19:35:08]-[org.b3log.solo.upgrade.V300_310:60]: Upgrading from version [3.0.0] to version [3.1.0]....
    [ERROR]-[2019-02-28 19:35:08]-[org.b3log.solo.upgrade.V300_310:107]: Upgrade failed!
    org.h2.jdbc.JdbcSQLException: NULL not allowed for column "ARTICLEABSTRACTTEXT"; SQL statement:
    ALTER TABLE `b3_solo_article` ADD COLUMN `articleAbstractText` TEXT NOT NULL [23502-197]
    	at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
    	...... ......
    	at com.zaxxer.hikari.pool.ProxyStatement.executeUpdate(ProxyStatement.java:120)
    	at com.zaxxer.hikari.pool.HikariProxyStatement.executeUpdate(HikariProxyStatement.java)
    	at org.b3log.solo.upgrade.V300_310.perform(V300_310.java:72)
    	at org.b3log.solo.service.UpgradeService.upgrade(UpgradeService.java:155)
    	at org.b3log.solo.service.UpgradeService_$$_jvst957_1d._d8upgrade(UpgradeService_$$_jvst957_1d.java)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at org.b3log.latke.ioc.JavassistMethodHandler.invoke(JavassistMethodHandler.java:116)
    	at org.b3log.solo.service.UpgradeService_$$_jvst957_1d.upgrade(UpgradeService_$$_jvst957_1d.java)
    	at org.b3log.solo.SoloServletListener.contextInitialized(SoloServletListener.java:92)
    
    2 回复 
    感谢    赞同    反对    举报    分享       回复
  • 88250            

    H2 是有点问题,不好意思稍后更新一下。

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • iTanken            

    trollface

    感谢    赞同    反对    举报    分享       回复
  • hanzanr123      

    哈哈, 更新真快

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • 88250            

    这几天开发比较密集 😅

    感谢    赞同    反对    举报    分享       回复
  • 88250            

    已经重写打包上传了,麻烦再试试,辛苦了哦。

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • iTanken            

    好的好的 👌

    感谢    赞同    反对    举报    分享       回复
  • zxniuniu      

    部署在非 ROOT 下导致的问题的改进,是不是说可以部署在非 ROOT 下了,比如直接 solo,感谢 D 大

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • keppel      

    有没有可能在后面版本加上本地登录 (非第三方登录), 和第三方文件上传的功能呢?

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • 88250            

    应该可以了现在。

    感谢    赞同    反对    举报    分享       回复
  • 88250            

    登录暂时不会改了,图片的话现在也可以用其他图床的。

    感谢    赞同    反对    举报    分享       回复
  • resolver      

    Theme Pinghsu by Vanessa。
    这样真的好吗?能不能带上原作者地址?感觉很不尊重原作者!我发现很多 solo 和 pipe 的皮肤都是这样,拿人家的东西过来随便改改然后签上自己的名字,还不留原作者的信息!!!虽然是开源的,但是我还是觉得不妥!

    2 回复 
    感谢    赞同    反对    举报    分享       回复
  • 88250            

    感谢建议,能否截图说明一下是哪个地方?

    感谢    赞同    反对    举报    分享       回复
  • Vanessa            

    不知道你在哪里看到的 Pinghsu 这个皮肤没有带上原作者,可否提供一下地址?

    其他皮肤有些是原创,有些是其他开源爱好者贡献的,有些是原站已经关闭的。如果你觉得不妥,可以具体说一下是哪款皮肤么?

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • 88250            

    后续得调整一下官方皮肤仓库,给每个皮肤都加上 README 和 LICENSE,如果是仿款就按原作者提供的协议,这样完全按照开源项目的做法就不会再让人产生误解了。

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • kevinBobo      

    看板娘插件是不是该更新一波了

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • 93814690      

    WARNING [main] org.apache.catalina.startup.SetContextPropertiesRule.begin [SetContextPropertiesRule]{Context} Setting property ‘antiJARLocking’ to ‘true’ did not find a matching property.

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • 88250            

    请问是发现了缺陷还是有新需求?

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • 88250            

    请问你是拉源码构建的吗?

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • kevinBobo            

    我希望可以增加几个模型呀
    我那天在群里看一个血小板 被萌到了
    https://www.fghrsh.net/post/123.html 像这个 demo 里一样

    3 回复 
    感谢    赞同    反对    举报    分享       回复
  • 88250            
    感谢    赞同    反对    举报    分享       回复
  • kevinBobo      

    我部署新版本 新皮肤 500 错误呢..
    顺便再提一个意见 nijigen 皮肤看文章的时候点击标题 ,
    右边的导航会重复渲染导致出来很多重复的导航, 虽然我改 js 可以修正,
    但是不太想每次部署都去改一下好麻烦, 希望可以解决一下这个小问题

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • 93814690            

    用的 war 包,看启动日志时看见这个,没什么影响吧

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • 88250            

    应该没影响,最新的代码上已经把 META-INF 这个目录删除了,你那边也可以删除掉试试。

    感谢    赞同    反对    举报    分享       回复
  • Vanessa            
    感谢    赞同    反对    举报    分享       回复
  • 88250            

    需要按正常升级才能用新皮肤,不然缺少字段会报错。nijigen 导航问题我没太看明白,在我博客上你看下是否能重现。 https://88250.b3log.org/?skin=nijigen

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • kevinBobo            

    image.png
    你得没有哎, 我的点击标题一次之后右边就成这样了.. 会出现两个重复的导航

    2 回复 
    感谢    赞同    反对    举报    分享       回复
  • 88250            

    后台插件管理里面有个 ToC 插件,禁用再启用看看是否有用。

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • Vanessa            

    可以把你的地址发一下么?

    感谢    赞同    反对    举报    分享       回复
  • kevinBobo            

    没有效果, 好像 js 里面渲染的时候没有清空我记着, 我家一个清空就没事了
    你可以去我的网站尝试一下啊https://www.kevinbobo.top

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • Vanessa 1 感谢              

    latke 配置中 serverPor 配置为空。这个是 pjax 中的一个小 bug

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • kevinBobo            

    谢谢 我改为空重启后, 这个情况消失了!

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • 88250            

    感谢帮忙测试和反馈,latke.props 的问题在最新 master 代码上已经做了一些修复,希望以后碰到这类问题的人越来越少。

    感谢    赞同    反对    举报    分享       回复
  • stormbirds      

    我的环境为 nginx 所在外网服务器 A,接受域名 blog.stormbirds.cn 的所有请求硬跳转至 https 协议,代理至 tomcat 容器所在服务器 B 的 http 协议的端口上,下面有 nginx 配置代码。 出现问题为无法登录。显示 Latke 配置错误,但是可以正常浏览。还有就是从 2.9.9 升级到了 3.0.0 然后升级到了 3.1.0 后出现了以下情况

    Mixed Content: The page at 'https://blog.stormbirds.cn/' was loaded over HTTPS, but requested an insecure stylesheet 'http://blog.stormbirds.cn/skins/Medium/css/base.css?1551464246090'. This request has been blocked; the content must be served over HTTPS.
    (index):1 Mixed Content: The page at 'https://blog.stormbirds.cn/' was loaded over HTTPS, but requested an insecure script 'http://blog.stormbirds.cn/js/lib/compress/pjax.min.js'. This request has been blocked; the content must be served over HTTPS.
    (index):1 Mixed Content: The page at 'https://blog.stormbirds.cn/' was loaded over HTTPS, but requested an insecure script 'http://blog.stormbirds.cn/js/common.min.js?1551464246090'. This request has been blocked; the content must be served over HTTPS.
    (index):1 Mixed Content: The page at 'https://blog.stormbirds.cn/' was loaded over HTTPS, but requested an insecure script 'http://blog.stormbirds.cn/skins/Medium/js/common.min.js?1551464246090'. This request has been blocked; the content must be served over HTTPS.
    (index):821 Uncaught ReferenceError: Util is not defined
        at (index):821
    (anonymous) @ (index):821
    (index):827 Uncaught ReferenceError: $ is not defined
        at (index):827
        at (index):856
    (anonymous) @ (index):827
    (anonymous) @ (index):856
    (index):1 Mixed Content: The page at 'https://blog.stormbirds.cn/' was loaded over HTTPS, but requested an insecure manifest 'http://blog.stormbirds.cn/manifest.json'. This request has been blocked; the content must be served over HTTPS.
    (index):1 Mixed Content: The page at 'https://blog.stormbirds.cn/' was loaded over HTTPS, but requested an insecure favicon 'http://blog.stormbirds.cn/favicon.png'. This request has been blocked; the content must be served over HTTPS.
    

    我的 latke.properties 文件配置情况为

    
    #### Server ####
    
    # Browser visit protocol
    serverScheme=https
    
    #### Cookie ####
    cookieName=solo
    cookieSecret=Beyond
    
    #### Runtime Mode ####
    #runtimeMode=DEVELOPMENT
    runtimeMode=PRODUCTION
    

    我的 nginx 配置,其中添加了 X-Forwarded-Proto https 的头

    server {
        listen 443 ssl;
    	server_name blog.stormbirds.cn;
       	access_log logs/access_blog.log;
       	error_log logs/error_blog.log;
    	
    	ssl_certificate /root/.acme.sh/stormbirds.cn/fullchain.cer;
    	ssl_certificate_key /root/.acme.sh/stormbirds.cn/stormbirds.cn.key;
    	ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    	ssl_prefer_server_ciphers on;
         ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
         
    	# set google 
        location /google7118b879bf9399f4.html {
            root html/blog;
        }
    	# set site favicon
        location /favicon.ico {
            root html;
        }
         location / {
          proxy_pass http://222.90.42.119:8800;
          proxy_http_version 1.1;
          add_header Access-Control-Allow-Origin *;
          add_header Access-Control-Allow-Headers X-Requested-With;
          add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-Proto $scheme;
    #      proxy_set_header X-SSL-Client-Cert $ssl_client_cert;
      	}
    
    }
    server{
    	listen 80 ;
    	listen [::]:80 ;
    	server_name blog.stormbirds.cn;
    	access_log logs/access_blog.log;
    	error_log logs/error_blog.log;
    	if ($server_port = 80) {
    		return 301 https://$host$request_uri;
    	}
    }
    

    而且在 tomcat 的 server.xml 中添加了 https 的协议区分

    <Valve className="org.apache.catalina.valves.RemoteIpValve"
    	remoteIpHeader="X-Forwarded-For" protocolHeader="X-Forwarded-Proto"
    	protocolHeaderHttpsValue="https"/>
    
    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • 88250            

    你好,latke.props 的 serverScheme 改完后重启容器了吗?另外,NGINX 的 X-Forwarded-Proto 和 Tomcat 的 server.xml 中的协议头配置程序没有读取,可以不用配置。区分协议主要是用的 latke.props 中的 serverScheme 配置项。重启后如果还有问题,请再加一个配置项 staticServerScheme 也配置成 https 后再重启。

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • fangxy926      

    新皮肤的代码块显示有点丑
    image.png

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • Vanessa            

    是字体问题么?是的话可以到 https://github.com/b3log/solo-skins 更新相关皮肤代码。

    感谢    赞同    反对    举报    分享       回复
  • Vanessa            

    看了下。模型不一样,他的模型不能拿来直接用哇。。。 😢

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • kevinBobo            

    哈哈, 希望以后可以加入一些新的皮肤吧😂

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • allenwei      

    为啥这 MarkDown 不支持数学表达式?

    比如这样一个表达式

    2. 书写一个质能守恒公式 [^LaTeX]

    $$M_2$$

    在其他 markdown 编辑器可以展示,咱们这个不行?

    感谢    赞同    反对    举报    分享       回复
  • allenwei      

    请问 solo 是怎么知道我之前部署的哪个版本?那我把之前的包删掉直接部署 3.1 为啥不行?

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • Vanessa            

    嗯嗯。我去看看我那个模型有没有人加新皮肤了,再不行就看看会不会改

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • 88250            

    之前部署过的话数据在 ~/solo_h2 目录下,不需要的话删除了重写启动新版本即可。

    感谢    赞同    反对    举报    分享       回复
  • stormbirds            

    资源协议配置成 https 解决了 Mixed Content 的问题,但是 github 帐号登陆的问题还在。另外每改完一个配置我都会重启 tomcat
    20190303083731的屏幕截图.png

    1 回复 
    感谢    赞同    反对    举报    分享       回复
请输入回帖内容...