主页

Rails动作缓存

动作缓存 有前置过滤器的动作不能使用页面缓存,例如需要验证身份的页面。此时,应该使用动作缓存。动作缓存的工作原理与页面缓存类似,不过入站请求会经过 Rails 栈处理,以便运行前置过滤器,然后再伺服缓存。这样,可以做身份验证和其他限制,同时还能从缓存的副本中伺服结果。 动作缓存已从Rails 4中删除 动作缓存actionpack-action_caching的地址 安装 在Rails项目中的Gemfile文件中添加 gem 'actionpack-action_caching' 然后执行bundle install命令安装 使用 详细介绍查看动作缓存actionpack-action_caching class ListsController <...

阅读更多

Rails页面缓存

页面缓存 页面缓存是 Rails 提供的一种缓存机制,让 Web 服务器(如 Apache 和 NGINX)直接访问静态页面,而不经由 Rails 动态生成。虽然这种缓存的速度超快,但是不适用于所有情况(例如需要验证身份的页面)。此外,因为 Web 服务器直接从文件系统中访问文件,所以要自行实现缓存失效机制 页面缓存已从Rails 4中删除 页面缓存actionpack-page_caching的地址 安装 在Rails项目中的Gemfile文件中添加 gem 'actionpack-page_caching' 然后执行bundle install命令安装 设置 设置缓存文件存放位置page_cache_directory config.action_c...

阅读更多

在Ubuntu上部署Gogs

Gogs 是一款极易搭建的自助 Git 服务。 为什么选择Gogs 我之前也部署过Gitlab,但是太吃资源了,Gogs相比就很轻量,正好合适搭建私人Git服务器。 安装Nginx和数据库 要部署Gogs,需要安装Nginx和数据库 安装Nginx sudo apt-get update sudo apt-get install nginx 安装和初始化数据库 Gogs支持MySQL,PostgreSQL,SQLite3,MSSQL和TiDB,这里我选择PostgreSQL sudo apt-get update sudo apt-get install postgresql 命令执行完毕后,配置数据库 设置密码 安装完毕后需要更改postgres用户的密码...

阅读更多

Gogs无法读取远程仓库(fatal: XX/XX.git does not appear to be a git repository)

错误描述:fatal: 'XX/XX.git' does not appear to be a git repository 问题 部署完Gogs后,在Web页面创建好仓库后,本地向远程推送出现无法读取远程仓库的问题,可能原因:~/.ssh/authorized_keys 文件中存在重复的 SSH 密钥,所以公钥使用冲突了 解决方案 删除~/.ssh/authorized_keys文件里除了属于 Gogs 自动添加以外的重复密钥,这样就可以正常了 新的问题 但是这样又出现了个新的问题,就是我用ssh登不上我的远程服务器了,原来刚刚删除的那个秘钥是ssh远程登录密钥,这样可不行的呀 新的方案 额外再生成一个新的密钥id_rsa_gogs ssh-keygen -t rs...

阅读更多

Git钩子

原地址在这里:自定义-Git-Git-钩子 Git钩子 Git 能在特定的重要动作发生时触发自定义脚本。 有两组这样的钩子:客户端的和服务器端的。 客户端钩子由诸如提交和合并这样的操作所调用,而服务器端钩子作用于诸如接收被推送的提交这样的联网操作 Git钩子在哪? 钩子都被存储在 Git 目录下的 hooks 子目录中。 也即绝大部分项目中的 .git/hooks 。 当你用 git init 初始化一个新版本库时,Git 默认会在这个目录中放置一些示例脚本。这些脚本除了本身可以被调用外,它们还透露了被触发时所传入的参数。 所有的示例都是 shell 脚本,其中一些还混杂了 Perl 代码,不过,任何正确命名的可执行脚本都可以正常使用 —— 你可以用 Rub...

阅读更多

向Gogs仓库推送代码后,自动更新远程仓库的代码

Gogs服务同博客静态服务在同一服务器,我想每次push后,Gogs接受成功后会自动更新远程服务器的资源 用Hexo框架写完博客后,使用hexo d -g会将生成好的静态资源推送到自己的远程仓库,远程服务器每次都要登上去手动git pull,而写个crontab有又觉得不怎么好,然后就找到了Git 服务端钩子post-receive此挂钩在整个过程完结以后运行,可以用来更新其他系统服务或者通知用户 这个钩子在Gogs的gogs-repositories目录下,每一个仓库目录下都有hooks/post-receive这个钩子,将以下改好后添加到文件内即可 unset GIT_DIR NowPath=`pwd` DeployPath="/var/www/blog" # 要将这里...

阅读更多