Github를 자바 스크립트 라이브러리의 CDN으로 사용해야합니까? [닫은]


94

자체 서버 대신 CDN에서 자바 스크립트 라이브러리를 제공하면 엄청난 이점이 있습니다. 서버에 대한 작업이 적고 CDN이 서버보다 사용자에게 더 가까운 사본을 가질 가능성이 있지만 가장 중요한 것은 사용자의 브라우저가 해당 URL에서 이미 캐시를 가지고있을 가능성이 높습니다. 마지막 것은 모든 사람의 총 작업량이 적다는 것을 의미하므로 모든면에서 분명히 승리하며 우리 (개발자)가 자바 스크립트를 제공하기 위해 CDN에 더 자주 의존 할 가능성이 높습니다.

그러나 인기있는 자바 스크립트 CDN (Google, Microsoft 등)은 적은 수의 파일 만 호스팅합니다. 다른 사람들을 위해 우리는 직접 호스팅하거나 소스 제어 서버를 일종의 CDN으로 사용하여 선택할 수 있습니다. Github 또는 이와 유사한 파일이 전역 적으로 제공되도록 최적화 된 지리적으로 분산 된 파일 캐시가있을 가능성은 거의 없습니다. 그러나 그것이 일반적인 관행이라면 사용자의 브라우저가 캐시를 가질 가능성이 있습니다. 서버에서 github로 작업을 오프 로딩한다는 주장은 Github가 자발적으로이를 수행 한 경우에만 유효합니다.

그래서, 그것은 일반적인 관행입니까? 우리는 서로를 격려해야합니까? Github가 마음에 드십니까? 공식 정책이 명시되어 있습니까?


5
작성자가 파일 구조를 다시 정렬하면 어떻게됩니까? 수백 개의 웹 사이트 중단에 대한 그의 문제 코드가 아닙니다.
Raynos 2011 년

2
@Raynos GitHub 저장소의 "작성자"인 경우 변경 사항을 제어 할 수 있습니다.
Chris Jacob

2
@ChrisJacob 그게 요점입니다. 내 파일 구조를 변경하면 더 이상 존재하지 않는 코드 조각을 가리키는 것이 내 문제가 아닙니다.
Raynos

5
rawgithub.com 을 사용 하여 진행중인 HTML, JavaScript 또는 CSS를 빠른 데모를 위해 다른 사람과 공유하거나 jsPerf 테스트에서 사용할 수 있습니다.
Giovanni Cappellotto 2013 년

@GiovanniCappellotto의 위 의견에 정답이 있으므로 질문이 다시 열려야합니다.
Supersharp

답변:


93

성능이나 IE9 호환성에 관심이 있다면 JavaScript 파일에 대해 그렇게해서는 안됩니다.

GitHub는 먼 미래의 만료 헤더가있는 "원시"파일을 제공하지 않습니다. 교차 사이트 캐싱의 가능성이 없으면 공용 CDN을 사용하여 JavaScript를 호스팅하는 가장 큰 이점을 잃게됩니다. 실제로 GitHub를 CDN으로 사용하는 것은 각 사용자가 파일에 대한 첫 번째 요청을 한 후 자체 서버에서 파일을 호스팅하는 것보다 느립니다 (서버에서 캐싱을 올바르게 구성했다고 가정).

또 다른 문제는 GitHub가 파일의 실제 MIME 유형과 일치하는 콘텐츠 유형 헤더가있는 "원시"파일을 제공하지 않는다는 것입니다. IE9 (및 기타 브라우저 / 프록시 / 방화벽 등)에서 올바른 콘텐츠 유형으로 제공되지 않는 JavaScript 파일은 기본적으로 차단됩니다. 예를 들어 BlockUI 데모 페이지에서 실제로 작동하는 것을 볼 수 있습니다.

여기에 이미지 설명 입력


10
또한 ... "그렇게 원시 파일을 요청하면 파일 시스템에서 파일에 직접 액세스하는 것이 아닙니다. 응용 프로그램 코드 레이어도 거치므로 사이트 속도가 느려집니다. 그렇게하지 마십시오. . 대신 gh-pages 브랜치를 만들고 거기에서로드하세요. " -viatropos.com/blog/github-as-a-cdn
Chris Jacob

RawGit은 적절한 Content-Type 헤더를 사용하여 GitHub에서 직접 원시 파일을 제공합니다. URL에서 브랜치가 아닌 특정 태그 또는 커밋 해시를 사용합니다. 파일은 URL을 기반으로 영구적으로 캐시됩니다. rawgit.com
Kerem Baydoğan 2016 년


11

이것은 최근 github의 지원 포럼에서 요청되었으며 공식적인 답변은 괜찮다는 것입니다.

github에 정말 않았다 : 나는 다른 답변에 동의했다 가졌 의미하지 구글과 마이크로 소프트가 그 특정 인프라가 동안, CDN합니다.


7
명확히하기 위해. 해당 지원 포럼 응답은 내 답변 (GitHub "raw"파일이 아닌 CDN으로 GitHub 페이지) : stackoverflow.com/questions/5502540/… 에서 링크 한 기사와 관련이 있습니다 .
Chris Jacob

10

프로토 타이핑 / 개인용으로는 괜찮지 만 프로덕션에서는 다음을 살펴볼 것입니다.

http://www.cdnjs.com/

http://cachedcommons.org/- 더 이상 사용할 수 없음


CachedCommons.com이 github.com에서 서비스를 제공하고 있음을 알고 있기를 바랍니다.
ocodo

그러나 URL은 CachedCommons cachedcommons.org/cache/mootools/1.2.4/javascripts/mootools.js 를 가리키는 것처럼 보이며 프록시가 될 수 있습니다.
meleyal

죄송합니다. Github를 CDN으로 사용하는 것에 대한 이전 정보는 더 이상 적용되지 않으며 모든 것이 좋습니다. 향후 가능한 가용성 문제와는 별도로이를 방지하기 위해 라이브러리를 분기하는 것이 좋습니다.
ocodo

2
Github에 연결하는 것은 곧 옵션이되지 않을 것 같습니다 : github.com/blog/…
meleyal

1
실제로는 문제가되지 않습니다. GitHub 기반 리소스를 cdn으로 사용하려는 경우 정적 페이지 사이트 (현재 GitHub.io)의 일부로 호스팅되는지 확인하십시오. 그건 그렇고 1 위.
ocodo 2013 년

-2

나는 지금 몇 달 동안 그것을하고 있고, 먼저 몇 가지 우려 사항이 있었지만 파일이 공개적으로 사용 가능한 데 문제가 없다면 완전히 멋지다. 걱정한다면 축소 버전을 사용하십시오.

하지만 여전히-Google과 MS가 jQuery 및 jQuery 템플릿의 공간을 지배하므로이를 위해 사용합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.