Nodejs - github排版又乱了

Nodejs - github排版又乱了

抓请求,发现github加载的这几个资源一直提示 Failed to load resource

https://github.global.ssl.fastly.net/assets/github-64b1365508e36737b136fe306a4b17ad39c3a448.css
https://github.global.ssl.fastly.net/assets/github2-14b928cef61596f6df7a9f2e108bba2fb0743455.css
https://github.global.ssl.fastly.net/assets/frameworks-c4d69f16e67f14e99dd8830ae5b76bb64b2913e5.js

fastly.net好像是被墙了


10 回复

Nodejs - GitHub 排版又乱了

最近在使用 Node.js 进行开发时,发现访问 GitHub 的时候页面排版出现了问题。经过排查,发现是因为 GitHub 加载的一些静态资源无法正常加载导致的。具体表现为以下这些资源提示 Failed to load resource

https://github.global.ssl.fastly.net/assets/github-64b1365508e36737b136fe306a4b17ad39c3a448.css
https://github.global.ssl.fastly.net/assets/github2-14b928cef61596f6df7a9f2e108bba2fb0743455.css
https://github.global.ssl.fastly.net/assets/frameworks-c4d69f16e67f14e99dd8830ae5b76bb64b2913e5.js

从错误信息可以看出,问题可能出在 fastly.net 域名上。这通常意味着该域名被墙或者网络连接存在问题。

解决方案

一种常见的解决方法是通过修改 DNS 或者使用代理服务器来绕过网络限制。这里我们提供一个简单的 Node.js 示例,使用 http-proxy-middleware 来创建一个本地代理服务器,将请求转发到 GitHub。

首先,安装所需的依赖包:

npm install http-proxy-middleware

然后,创建一个简单的 Node.js 脚本来设置代理服务器:

const { createProxyMiddleware } = require('http-proxy-middleware');

// 创建一个代理服务器,将请求转发到 GitHub
const proxy = createProxyMiddleware('/assets', {
  target: 'https://github.com',
  changeOrigin: true,
  pathRewrite: {
    '^/assets': '/assets'
  }
});

module.exports = function(app) {
  app.use(proxy);
};

保存上述代码为 proxy.js 文件,并启动一个简单的 Express 服务器:

const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');

const app = express();

app.use('/assets', createProxyMiddleware({
  target: 'https://github.com',
  changeOrigin: true,
  pathRewrite: {
    '^/assets': '/assets'
  }
}));

const PORT = process.env.PORT || 3000;

app.listen(PORT, () => {
  console.log(`Proxy server is running on port ${PORT}`);
});

运行该脚本:

node proxy.js

现在,当你的浏览器访问 http://localhost:3000/assets 时,所有对 /assets 目录下的请求都会被代理到 GitHub,从而避免了由于网络限制导致的资源加载失败问题。

这种方法可以暂时解决由于网络限制导致的资源加载问题,但请注意,长期来看建议优化网络环境或使用其他可靠的 CDN 服务。


是的,昨天在公司上,就一直加载不了或者乱掉了

hosts 添加 185.31.17.184 github.global.ssl.fastly.net

现在好像已经好了,我这打开没问题了

hosts之后成功!

前一个小时 还乱的呢。折腾半小时 密码找回。github不乱了

在tc干点技术工作都不容易啊

根据你的描述,GitHub 的一些资源文件(如 CSS 和 JS 文件)无法正常加载,这可能是由于域名 fastly.net 被防火墙屏蔽导致的。以下是一些可能的解决方法:

方法一:使用代理服务器

你可以配置一个代理服务器来访问这些资源。例如,使用 http-proxy-middleware 模块来创建一个本地代理。

示例代码:

const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');

const app = express();

app.use('/assets', createProxyMiddleware({
  target: 'https://github.global.ssl.fastly.net',
  changeOrigin: true,
}));

app.listen(3000, () => {
  console.log('Proxy server running on port 3000');
});

方法二:修改 Hosts 文件

你也可以手动修改本地的 hosts 文件,将 fastly.net 的域名解析指向一个可用的 IP 地址。这需要你在网络上找到一个可用的 IP 地址并进行替换。

示例步骤:

  1. 打开 C:\Windows\System32\drivers\etc\hosts 文件。
  2. 添加一行:
    <可用IP地址> github.global.ssl.fastly.net
    

方法三:使用本地缓存

你可以手动下载这些资源文件并放在本地服务器上提供服务。

示例代码:

const express = require('express');

const app = express();

app.use('/assets', express.static(__dirname + '/assets'));

app.listen(3000, () => {
  console.log('Static server running on port 3000');
});

总结

以上方法可以帮助你绕过防火墙问题,使 GitHub 的资源文件能够正常加载。选择适合你情况的方法进行尝试即可。

回到顶部