最近用 Hotwire Turbo 改进了 Geeknote 的首页,减少了重复查询和渲染,想分享一下过程。
本文已获得原作者( Valentin Kiselev 、 Travis Turner )和 Evil Martians 授权许可进行翻译。原文讲述了配置 Lefthook 的五种很棒且令人惊讶的方法技巧,以及所带来的团队项目自动化的乐趣。
Kamal 是 Basecamp 开源的一款部署工具,它的工作模式类似 Capistrano,但使用 docker 解决依赖封装。它原始设计用于 Rails 应用,由于使用了 docker,只要应用可以 docker 化也能使用 kamal 部署。
Geeknote 遵循 Material Design。Material Design 经常使用返回按钮,我在实现返回按钮的过程发现一些问题,在此分享。
Rails 8 将会继续将 Hotwire 作为默认,我觉得这很好。Hotwire 是以服务端渲染为核心的前端方案,由于服务端是数据的根源,大部分应用可以通过服务端渲染解决问题而不用考虑数据同步。
最近将 Geeknote 的图片处理换到了 imgproxy,记录一下过程。
Importmap-rails 默认的加载来源是 CDN,但是公共 CDN 在国内访问不稳定。另一个方法是将 JavaScript 下载到 vender/javascript 目录,但是这个方法需要将外部 JavaScript 签入源码管理工具,导致源码体积变大。
Requirements
写 Web 应用的时候,经常需要写这样的 HTML 片段:
现代软件是人类合作的结晶,以homeland这个以Rails开发的小型论坛为例,Ruby 语言的依赖项有211项,Javascript 依赖项目更是达到了1811项,这无疑会遇到应用依赖的组件管理困难。例如,组件的许可证变动引发巨量修改,JS 组件中发生故意投毒事件,所以很...
以前用redirect_to :back这个方法,实现回退源页面功能,但是这个方法会出现问题: 当HTTP_REFERER不存在(介绍地址)时,有时会出现ActionController::RedirectBackError异常。
最近 GeekNote 发现了一个 Bug,所有未登录用户在访问文章页面时会跳转到登陆页面。这看起来就像那些封闭花园式的发布平台那样,导致流失了很多潜在用户。
现在社交网络一般都支持网站设置预览图,有预览图的网页能更占据更大的展示空间,提高点击率。
最近我用 Postal 搭建了一个邮件服务器,体验比想象中更好,迫不及待分享一下经验。
最近有人反馈 GeekNote 的注册流程体验很差(#23),我调试之后发现之前集成 reCAPTCHA 的代码有错,会导致验证经常失败。解决的过程记录如下。
在表单提交表单后,在控制台看到有如下的请求日志:
堡垒最容易从内部攻破。 —— 列宁
GeekNote 使用了 Hotwire 的 Turbo,有些地方需要用到 Tab 导航。我希望在切换 Tab 的时候保持页面滚动的位置,避免页面跳动。
最近 Rails 7 正式发布,其中一个引人注目的特性是 CSS/JS bundling,用于取代 Rails 6 的 Webpacker。我在之前的文章中介绍过新的方案带来什么变化。
自 Rails 6 引入了 Webpacker 以来,Rails 的前端部分就引发了很多吐槽。吐槽主要分两类: