• 主题模板
  • 【Joe2.0】Halo-theme-joe2.0 主题发布 🚀🚀🚀

chen 我看你的主题还有报错,应该从 release 下载压缩包安装,不要直接下载master分支代码,这样后面很多文件可能找不到

友链列表中申请格式里博客简介:显示空白,想问下这个内容是从什么地方获取的🙏

    楼主你好,我上传主题的时候提示这个错误,可以帮忙看下吗
    (nginx已配置上传文件大小,上传其他体积小的主题时均正常)

    Request URL: http://blog.xxx.com/api/admin/themes/upload
    Request Method: POST
    Status Code: 500 Server Error
    Remote Address: 124.223.39.234:80
    Referrer Policy: strict-origin-when-cross-origin

    response:
    {"status":500,"message":"主题上传失败!","devMessage":null,"data":null}

      qinhua
      你好,我找了下项目下的日志文件,麻烦抽空帮忙看下,多谢啦😄

      run.halo.app.exception.ServiceException: 主题上传失败!
      at run.halo.app.theme.MultipartZipFileThemeFetcher.fetch(MultipartZipFileThemeFetcher.java:42) ~[classes!/:1.4.16]
      at run.halo.app.theme.ThemeFetcherComposite.fetch(ThemeFetcherComposite.java:55) ~[classes!/:1.4.16]
      at run.halo.app.service.impl.ThemeServiceImpl.upload(ThemeServiceImpl.java:353) ~[classes!/:1.4.16]
      at run.halo.app.service.impl.ThemeServiceImpl$$FastClassBySpringCGLIB$$aa446525.invoke(<generated>) ~[classes!/:1.4.16]
      at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.8.jar!/:5.3.8]
      at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688) ~[spring-aop-5.3.8.jar!/:5.3.8]
      at run.halo.app.service.impl.ThemeServiceImpl$$EnhancerBySpringCGLIB$$d873ba84.upload(<generated>) ~[classes!/:1.4.16]
      at run.halo.app.controller.admin.api.ThemeController.uploadTheme(ThemeController.java:177) ~[classes!/:1.4.16]
      at run.halo.app.controller.admin.api.ThemeController$$FastClassBySpringCGLIB$$e8e9d45c.invoke(<generated>) ~[classes!/:1.4.16]
      at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.8.jar!/:5.3.8]
      at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779) ~[spring-aop-5.3.8.jar!/:5.3.8]
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.8.jar!/:5.3.8]
      at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) ~[spring-aop-5.3.8.jar!/:5.3.8]
      at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) ~[spring-aop-5.3.8.jar!/:5.3.8]
      at run.halo.app.core.ControllerLogAop.controller(ControllerLogAop.java:48) ~[classes!/:1.4.16]
      at jdk.internal.reflect.GeneratedMethodAccessor151.invoke(Unknown Source) ~[na:na]
      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
      at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
      at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634) ~[spring-aop-5.3.8.jar!/:5.3.8]
      at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624) ~[spring-aop-5.3.8.jar!/:5.3.8]
      at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72) ~[spring-aop-5.3.8.jar!/:5.3.8]
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175) ~[spring-aop-5.3.8.jar!/:5.3.8]
      at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) ~[spring-aop-5.3.8.jar!/:5.3.8]
      at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.8.jar!/:5.3.8]
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.8.jar!/:5.3.8]
      at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) ~[spring-aop-5.3.8.jar!/:5.3.8]
      at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692) ~[spring-aop-5.3.8.jar!/:5.3.8]
      at run.halo.app.controller.admin.api.ThemeController$$EnhancerBySpringCGLIB$$dc5cc970.uploadTheme(<generated>) ~[classes!/:1.4.16]
      at jdk.internal.reflect.GeneratedMethodAccessor589.invoke(Unknown Source) ~[na:na]
      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
      at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
      at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197) ~[spring-web-5.3.8.jar!/:5.3.8]
      at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141) ~[spring-web-5.3.8.jar!/:5.3.8]
      at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) ~[spring-webmvc-5.3.8.jar!/:5.3.8]
      at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894) ~[spring-webmvc-5.3.8.jar!/:5.3.8]
      at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.8.jar!/:5.3.8]
      at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.8.jar!/:5.3.8]
      at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063) ~[spring-webmvc-5.3.8.jar!/:5.3.8]
      at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.8.jar!/:5.3.8]
      at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.8.jar!/:5.3.8]
      at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.8.jar!/:5.3.8]
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:517) ~[jakarta.servlet-api-4.0.4.jar!/:4.0.4]
      at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.8.jar!/:5.3.8]
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:584) ~[jakarta.servlet-api-4.0.4.jar!/:4.0.4]
      at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:228) ~[websocket-server-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at run.halo.app.security.filter.AdminAuthenticationFilter.doAuthenticate(AdminAuthenticationFilter.java:120) ~[classes!/:1.4.16]
      at run.halo.app.security.filter.AbstractAuthenticationFilter.doFilterInternal(AbstractAuthenticationFilter.java:229) ~[classes!/:1.4.16]
      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.8.jar!/:5.3.8]
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103) ~[spring-web-5.3.8.jar!/:5.3.8]
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103) ~[spring-web-5.3.8.jar!/:5.3.8]
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.8.jar!/:5.3.8]
      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.8.jar!/:5.3.8]
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.8.jar!/:5.3.8]
      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.8.jar!/:5.3.8]
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at run.halo.app.filter.CorsFilter.doFilter(CorsFilter.java:53) ~[classes!/:1.4.16]
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) ~[spring-boot-actuator-2.5.1.jar!/:2.5.1]
      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.8.jar!/:5.3.8]
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.8.jar!/:5.3.8]
      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.8.jar!/:5.3.8]
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at run.halo.app.filter.LogFilter.doFilterInternal(LogFilter.java:40) ~[classes!/:1.4.16]
      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.8.jar!/:5.3.8]
      at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[jetty-server-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602) ~[jetty-security-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[jetty-server-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[jetty-server-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) ~[jetty-server-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[jetty-server-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435) ~[jetty-server-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[jetty-server-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501) ~[jetty-servlet-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) ~[jetty-server-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[jetty-server-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350) ~[jetty-server-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[jetty-server-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[jetty-server-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[jetty-server-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388) ~[jetty-server-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633) ~[jetty-server-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380) ~[jetty-server-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) ~[jetty-server-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) ~[jetty-io-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) ~[jetty-io-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) ~[jetty-io-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) ~[jetty-util-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) ~[jetty-util-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) ~[jetty-util-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) ~[jetty-util-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:383) ~[jetty-util-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:882) ~[jetty-util-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1036) ~[jetty-util-9.4.42.v20210604.jar!/:9.4.42.v20210604]
      at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]
      Caused by: java.io.EOFException: Unexpected end of ZLIB input stream
      at java.base/java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:245) ~[na:na]
      at java.base/java.util.zip.InflaterInputStream.read(InflaterInputStream.java:159) ~[na:na]
      at java.base/java.util.zip.ZipInputStream.read(ZipInputStream.java:197) ~[na:na]
      at java.base/java.io.InputStream.transferTo(InputStream.java:704) ~[na:na]
      at java.base/java.nio.file.Files.copy(Files.java:3078) ~[na:na]
      at run.halo.app.utils.FileUtils.unzip(FileUtils.java:151) ~[classes!/:1.4.16]
      at run.halo.app.theme.MultipartZipFileThemeFetcher.fetch(MultipartZipFileThemeFetcher.java:38) ~[classes!/:1.4.16]
      ... 113 common frames omitted

        4 天 后

        咱们这个主题啥时候支持自定义CDN,好像jsDelivr确实有点慢 🙁 @qinhua

          gugu 看到了,到 后台管理-外观-主题设置-其它 中关闭 使用CDN加载静态资源 即可生效。

            gugu 收到,最近在面试,我找到工作就马上处理这些问题。

              gugu 这个目前只有部分生效,有些第三方插件内部还有引入cdn的资源,我需要再做一轮清理

                chen 我在弄留言页的时候有过类似的问题,就是在后台->外观->菜单里设置页面时,地址用相对路径就可以,要是用https://······这种格式的话,在点击顶部导航栏切换到这个页面之后,高亮的位置就还是在首页。