Github页面,HTTP头部

67

我从我的 Github Pages 帐户中提供一些文件,但是当我检查我的 "js" 文件头时,我看到以下内容:

Last-Modified:Sun, 10 Feb 2013 14:00:46 GMT 
Expires:Sun, 10 Feb 2013 14:13:23 GMT
Cache-Control:max-age=600

这个文件是14天前提交的。但我不经常计划这些文件。因此,我需要将max-age值设得更大,并将Last-Modified值更改为上次提交的日期。

是否有可能更改Github页面的标题?


https://dev59.com/N2cs5IYBdhLWcg3w0HOzhttps://dev59.com/HG865IYBdhLWcg3wKLRP - trante
1
可以使用服务工作者来设置许多头信息。通过服务工作者,您可以自己处理整个缓存。您甚至可以设置COOP/COEP头信息并使SharedArrayBuffer在GitHub页面上工作 - Stefnotch
您可以使用 https://github.com/gzuidhof/coi-serviceworker 将 HTTP 标头添加到任何 GH 页面站点。这是一个服务工作者,使用了 https://dev59.com/gVEG5IYBdhLWcg3wSpSz#68675301 和 http://stefnotch.github.io/web/COOP%20and%20COEP%20Service%20Worker/ 中描述的技术,以及 https://dev.to/stefnotch/enabling-coop-coep-without-touching-the-server-2d3n。 - sideshowbarker
还有一个与该问题相关的链接:https://webapps.stackexchange.com/questions/119286/caching-assets-in-website-served-from-github-pages - Spenhouet
5个回答

74

我向 Github 管理员询问此事,他们告诉我无法更改标头。他们将此问题添加到愿望列表中。


1
仍然不可能。Github不想添加修改Github Pages HTTP头的功能。目前唯一的解决方法是使用HTML meta标签。 - Binyamin
我们可以对这个愿望清单中的项目投票吗?或者有什么推荐的请求此功能的方式吗? 也许如果足够多的人提出要求,他们会考虑它。 - Momin Bin Shahid

22

答案是否定的,但我们可以使用<meta http-equiv>标签在HTML页面上模拟HTML头。

<meta http-equiv="last-modified" content="Sun, 10 Feb 2013 14:00:46 GMT " />
<meta http-equiv="cache-control" content="Private" />
<meta http-equiv="Expires" content="600" />
您可以将这些片段嵌入HTML页面中。

6
这种方法适用于HTML文件,但我需要我的JS文件有最后修改头。 - trante
8
截至目前为止(2015年4月8日),仍然不可能。 - tamyiuchau
2
你可能想在页面上使用Service Workers作为解决方法(可以通过在SW内手动缓存或只是修改响应头来实现)。 - RReverser
4
不要使用Github页面! - Norbert Norbertson

8
这是给所有仍然遇到这个问题并从谷歌来到这里的人。
最近我也遇到了同样的问题。如果你足够固执并希望使用一些额外的第三方服务,那么实际上是有可能解决这个问题的。你需要做的是使用免费的Heroku应用程序和自定义的nginx构建包。这个构建包将作为代理传递工作,可以根据你的需要添加/删除HTTP头。
虽然你会失去GitHub CDN,但使用另一个服务(Cloudflare)来实现这一点(以及SSL作为奖励)可能是一个好主意。
如果有人感兴趣,我写了一篇详细的设置文章:https://www.rzegocki.pl/blog/custom-http-headers-with-github-pages/ - 设置相当繁琐,但它确实有效。

5

目前在Github Pages上无法实现此功能。您可以使用Netlify来代替Github。他们允许您更改标题,同时还具有表单、预渲染等很好的功能,这些功能在Github Pages中都没有。


2
GitHub Pages与Netlify的比较 - www.netlify.com/github-pages-vs-netlify - Alex Klaus

0

Cloudflare 可以解决这个问题,并在网络领域拥有更好的自动化 - 只能作为 DNS 提供商。不要在 github.io 页面上启用 HTTPS 以实现兼容性(由 CF 自动提供)。

Cloudflare Pages Netlify 可以生成 _headers 文件 - 如果网站较大,则它们不是免费或便宜的。提供外部上传以自动化构建您的机器,因此仅在此问题中看到的内容才是服务的内容(https://docs.netlify.com/routing/headers/#syntax-for-the-headers-file)。

Service Work - 不会显示在页面速度和其他指标中

Meta Tags - 对于静态 js 和 css 等其他文件无效

在讨论中(点赞) - https://github.com/github-community/community/discussions/11884 他们可以添加选项,因为他们使用 varnish


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接