如何在Gitlab中设置HTTP缓存标头?

时间:2017-05-05 03:10:12

标签: http caching hosting gitlab

使用 Gitlab页面来呈现网页排名较慢的网站时。我无法在GitLab(非企业版)中找到关于如何进行操作的任何解决方案

  1. 为图像等各种页面资源指定HTTP Cache Headers,以便可以缓存它。

  2. 指定/启用GZip的压缩,因为页面排名提到gitlab.io中的压缩已禁用。

3 个答案:

答案 0 :(得分:2)

  1. 看起来仍然无法指定HTTP缓存标头。但至少他们已为所有资源here硬编码“max-age = 600”
  2. 您可以通过 .gitlab-ci.yml 压缩公开文件夹的内容:

    脚本:

    • npm install
    • npm run build
    • gzip -k -6 -r public

答案 1 :(得分:0)

为GitLab页面启用GZip压缩

如果您添加了静态站点文件的预压缩版本.gz,则nginx可以代替常规文件来提供服务。将此行添加到您的.gitlab-ci.yml文件中:

image: alpine:latest

pages:
  stage: deploy
  script:
    - mkdir .temp
    - cp -r * .temp
    - mv .temp public
    - gzip -k -9 $(find public -type f)
  artifacts:
    paths:
      - public
  only:
    - master

此命令以最大压缩率压缩在public目录中找到的所有文件。

答案 2 :(得分:0)

如果您已经在pages CI Job中预先压缩了压缩资产,则GitLab支持提供压缩资产。 See the documentation

请注意,您可以并且也应该使用brotli压缩,因为它已针对Web内容进行了优化,并且受到大多数现代浏览器的支持。

对于您的.gitlab-ci.yml,还有一个建议的代码段:

pages:
  # Other directives
  script:
    # Build the public/ directory first
    - find public -type f -regex '.*\.\(htm\|html\|txt\|text\|js\|css\)$' -exec gzip -f -k {} \;
    - find public -type f -regex '.*\.\(htm\|html\|txt\|text\|js\|css\)$' -exec brotli -f -k {} \;

我还没有找到一种影响缓存行为的方法。我也在寻找这个。