Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

avoid setting jsdelivr as default option #507

Merged
merged 1 commit into from
May 21, 2022

Conversation

njzjz
Copy link
Member

@njzjz njzjz commented Apr 29, 2022

jsdelivr has been blocked in China, see jsdelivr/jsdelivr#18392. Considering many users living in China, we should avoid using jsdelivr for default.

PR Checklist

  • The commit message follows guidelines for NexT.
  • Tests for the changes was maked (for bug fixes / features).
    • Muse | Mist have been tested.
    • Pisces | Gemini have been tested.
  • Docs in NexT website have been added / updated (for features).

PR Type

  • Bugfix.
  • Feature.
  • Code style update (formatting, local variables).
  • Refactoring (no functional changes, no api changes).
  • Documentation.
  • Translation.
  • Other... Please describe:

What is the current behavior?

jsdelivr is the default library CDN provider.

What is the new behavior?

Now it will be provided by cdnjs by default. (cdnjs hasn't been blocked, right?)

  • Link to demo site with this changes:
  • Screenshots with this changes:

How to use?

In NexT _config.yml:

jsdelivr has been blocked in China, see jsdelivr/jsdelivr#18392. Considering many users living in China, we should avoid using jsdelivr for default.
@njzjz njzjz requested a review from a team April 29, 2022 01:45
@coveralls
Copy link

Pull Request Test Coverage Report for Build 2242901709

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage remained the same at 94.468%

Totals Coverage Status
Change from base Build 2216190865: 0.0%
Covered Lines: 138
Relevant Lines: 141

💛 - Coveralls

@njzjz
Copy link
Member Author

njzjz commented Apr 29, 2022

Which is faster in China, cdnjs or unpkg?

@ljcbaby
Copy link
Member

ljcbaby commented Apr 29, 2022

Maybe need a test.

In my opinion, custom_cdn_url is enough.As webmaster, he/she need adjust cdn provider heself/herself.

@njzjz
Copy link
Member Author

njzjz commented Apr 29, 2022

In my opinion, custom_cdn_url is enough.As webmaster, he/she need adjust cdn provider heself/herself.

I am wondering if a newbie will realize this point... One may just change nothing, come here and ask, "why can't I open my website?"😂

@ljcbaby
Copy link
Member

ljcbaby commented Apr 29, 2022

tested. It seems cdnjs is better in Mainland China.

@ljcbaby ljcbaby added this to the 8.11.1 milestone Apr 29, 2022
@stevenjoezhang
Copy link
Member

History repeats itself: theme-next/hexo-theme-next#98

@leirock
Copy link
Contributor

leirock commented Apr 29, 2022

In China mainland, lib.baomitu.com may be better. 😂

@ljcbaby
Copy link
Member

ljcbaby commented Apr 29, 2022

或者不改配置文件,而是在 doc 里做出提示。

@stevenjoezhang
Copy link
Member

确实很麻烦,现在没有一个全球通用的 CDN 解决方案,Cloudflare 也在部分区域无法访问。
国内的一些镜像提供商还没有经过时间的检验。

@njzjz
Copy link
Member Author

njzjz commented Apr 29, 2022

In China mainland, lib.baomitu.com may be better. 😂

baomitu去年有两周时间不可用,感觉也不是很靠谱,不适合作为默认配置……(默认配置应该可用性优先)
https://www.v2ex.com/t/758137

@ljcbaby
Copy link
Member

ljcbaby commented Apr 29, 2022

In China mainland, lib.baomitu.com may be better. 😂

baomitu去年有两周时间不可用,感觉也不是很靠谱,不适合作为默认配置……(默认配置应该可用性优先) https://www.v2ex.com/t/758137

备案修改,应该算是偶发的问题了。

@stevenjoezhang
Copy link
Member

所以这个月先换成 Cloudflare,之后再调研其它方案?
Cloudflare 默认的节点在海外,延迟大一点,但还可用;jsdelivr 确定是挂了。

@stevenjoezhang
Copy link
Member

现在的测试显示 jsdelivr 又被解封了,是否需要再观察一段时间?

@njzjz
Copy link
Member Author

njzjz commented Apr 29, 2022

头一回碰到还能解封的 刑不可知 则威不可测

@njzjz njzjz marked this pull request as draft April 29, 2022 18:12
@ljcbaby
Copy link
Member

ljcbaby commented Apr 29, 2022

我觉得继续观察吧。

封禁和解封来回横跳都见多了,这么快的倒是第一个。

@ghost
Copy link

ghost commented May 2, 2022

默认值换成本地静态资源?缺点是文件大。但是好处多啊,离线访问、不受CDN故障影响、不被供应商收集数据...

我的博客本身部署在CDN上,那就没必要用别人的CDN了。

@ljcbaby
Copy link
Member

ljcbaby commented May 2, 2022

默认值换成本地静态资源?缺点是文件大。但是好处多啊,离线访问、不受CDN故障影响、不被供应商收集数据...

我的博客本身部署在CDN上,那就没必要用别人的CDN了。欸嘿

本地不一定是最快的,几个站长之间都用到同一个 PublicCDN ,获取资源命中缓存时最快。

@stevenjoezhang stevenjoezhang removed this from the 8.11.1 milestone May 4, 2022
@jiangtj
Copy link

jiangtj commented May 5, 2022

本地会好一点,至少能访问你网站的,也都能获取到这些js代码。有需求的或者说需要优化的(本地服务器带宽不够的)可以自己修改为cdn

@ljcbaby
Copy link
Member

ljcbaby commented May 5, 2022

本地还要npm install @next-theme/plugins才能正常。不过默认为local,再报error让站长根据自己的情况调整cdn相关配置(引导到 https://theme-next.js.org/docs/advanced-settings/vendors.html )也是一个思路。

@stevenjoezhang
Copy link
Member

本地访问的话相当于回到这个 PR 之前的状态了 #72
可以发个问卷调查一下,我个人感觉用 CDN 的还是多一些

@jiangtj
Copy link

jiangtj commented May 5, 2022

本地还要npm install @next-theme/plugins才能正常。不过默认为local,再报error让站长根据自己的情况调整cdn相关配置(引导到 https://theme-next.js.org/docs/advanced-settings/vendors.html )也是一个思路。

确实,需要安装插件是个问题,或许可以实现在hexo启动的时候自动下载相关的插件,来避免这个问题 🤔

本地访问的话相当于回到这个 PR 之前的状态了 #72 可以发个问卷调查一下,我个人感觉用 CDN 的还是多一些

我个人而言,也是cdn,但是稳定性是更重要的 😂

@ljcbaby
Copy link
Member

ljcbaby commented May 6, 2022

本地还要npm install @next-theme/plugins才能正常。不过默认为local,再报error让站长根据自己的情况调整cdn相关配置(引导到 https://theme-next.js.org/docs/advanced-settings/vendors.html )也是一个思路。

我的意思是不要自动下载插件,保留一个不可用状态,引导用户查看教程并根据自己的需求设置。

@jiangtj
Copy link

jiangtj commented May 6, 2022

如果要多一步引导安装,我还是更倾向CDN,开箱即用肯定更好啊 😂

@maple3142
Copy link
Contributor

現在 public cdn 應該已經不會在跨站的情況下有 cache 的帶來的速度提升了,可以參考 https://developer.chrome.com/blog/http-cache-partitioning/

目前應該是全部都用 local,然後把網站部署到 cdn 比較快

@leirock
Copy link
Contributor

leirock commented May 6, 2022

嗯,所以我觉得还是默认设置 local,然后在文档里直接写主题安装需要两步:

npm install @next-theme/hexo-theme-next 
npm install @next-theme/plugins

@stevenjoezhang
Copy link
Member

npm 可以直接加到 package.json 里,git 安装需要两步

@leirock
Copy link
Contributor

leirock commented May 6, 2022

现在新手应该大都选择 npm 安装吧……

选择 git 安装的,要么是老用户,要么是有一定相关知识背景的,那么就不用担心这部分人会不会用的情况了。

(大概、也许、可能🤔)

@njzjz njzjz marked this pull request as ready for review May 19, 2022 00:52
@njzjz
Copy link
Member Author

njzjz commented May 19, 2022

Reopen. Looks like it's blocked again.

jsdelivr/jsdelivr#18397

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

CDN服务是否失效
7 participants