usar rawgit pagina githack como blog alternative github cdn

rawgit - Cómo vincular archivos directamente desde Github(raw.github.com)



rawgit alternative (8)

¿Podemos vincular archivos directamente desde Github?

<link rel="stylesheet" href="https://raw.github.com/username/project/master/style.css"/> <script src="https://raw.github.com/username/project/master/script.js"></script>

Sé que esto está permitido en Google Code. De esta manera, no tengo que preocuparme por actualizar un archivo local.


¿por supuesto, por qué no? Incluso se guarda la actualización a menos que alguien cambie el historial en git y fuerce un empujón.


Después de buscar esta misma funcionalidad, terminé escribiendo mi propio script PHP para actuar como un proxy. El problema que me encontré es que incluso cuando obtienes la versión / enlace RAW de Github y lo Github en tu propia página, el encabezado enviado fue ''text / plain'' y Chrome no estaba ejecutando mi archivo JavaScript desde Github . Tampoco me gustaron los otros enlaces publicados para usar servicios de terceros debido a los obvios problemas de seguridad / manipulación.

Entonces, al usar este script, puedo pasar el enlace RAW desde Github , hacer que el script establezca los encabezados correctos y luego generar el archivo como si viniera de mi propio servidor. Esta secuencia de comandos también se puede utilizar con una aplicación segura para extraer scripts no seguros sin arrojar errores de SSL advirtiendo de "enlaces no seguros utilizados".

Enlace:

<script src = "proxy.php? link = https://raw.githubusercontent.com/UserName/repo/master/my_script.js "> </ script>

proxy.php

<?php ################################################################################################################### # # This script can take two URL variables # # "type" # OPTIONAL # STRING # Sets the type of file that is output # # "link" # REQUIRED # STRING # The link to grab and output through this proxy script # ################################################################################################################### # First we need to set the headers for the output file # So check to see if the type is specified first and if so, then set according to what is being requested if(isset($_GET[''type'']) && $_GET[''type''] != ''''){ switch($_GET[''type'']){ case ''css'': header(''Content-Type: text/css''); break; case ''js'': header(''Content-Type: text/javascript''); break; case ''json'': header(''Content-Type: application/json''); break; case ''rss'': header(''Content-Type: application/rss+xml; charset=ISO-8859-1''); break; case ''xml'': header(''Content-Type: text/xml''); break; default: header(''Content-Type: text/plain''); break; } # Otherwise, try and determine what file type should be output by the file extension from the link }else{ # See if we can find a file type in the link specified and set the headers accordingly # If css file extension is found, then set the headers to css format if(strstr($_GET[''link''], ''.css'') != FALSE){ header(''Content-Type: text/css''); # If javascript file extension is found, then set the headers to javascript format }elseif(strstr($_GET[''link''], ''.js'') != FALSE){ header(''Content-Type: text/javascript''); # If json file extension is found, then set the headers to json format }elseif(strstr($_GET[''link''], ''.json'') != FALSE){ header(''Content-Type: application/json''); # If rss file extension is found, then set the headers to rss format }elseif(strstr($_GET[''link''], ''.rss'') != FALSE){ header(''Content-Type: application/rss+xml; charset=ISO-8859-1''); # If css xml extension is found, then set the headers to xml format }elseif(strstr($_GET[''link''], ''.xml'') != FALSE){ header(''Content-Type: text/xml''); # If we still haven''t found a suitable file extension, then just set the headers to plain text format }else{ header(''Content-Type: text/plain''); } } # Now get the contents of our page we''re wanting $contents = file_get_contents($_GET[''link'']); # And finally, spit everything out echo $contents; ?>


El gran servicio RawGit ya fue mencionado, pero voy a lanzar otro al ring: GitCDN.link

Beneficios:

  • Le permite vincular compromisos específicos, así como obtener automáticamente lo último (también conocido como maestro)
  • No produce daños por los altos volúmenes de tráfico; RawGit pide que sus enlaces dev.rawgit.com solo se usen durante el desarrollo, mientras que GitCDN le da acceso a la última versión, sin el peligro de que exploten los servidores.
  • Le da la opción de auto minificar su HTML, CSS y JavaScript, o publicarlo como está escrito ( https://min.gitcdn.link ).
  • Agrega compresión (GZip)
  • Agrega todos los encabezados correctos (Content-Type, cache-control, e-tag, etc.)

Divulgación completa, soy un desarrollador de proyectos en GitCDN.link


Necesitas llevar a cabo los siguientes pasos

  1. Obtenga la url en bruto del archivo de github. Que es algo como https://raw.githubusercontent.com/username/folder/example.css

  2. Visita http://rawgit.com/ . Pega la url git arriba en el cuadro de entrada. Generará dos url, uno para desarrollo y otro para fines de producción.

  3. Copia cualquiera de ellos y listo.

El archivo actuará como CDN. También puedes usar urls gist.


Páginas de GitHub: https://zcyzcy88.github.io/alert.js
Archivos en bruto reim de GitHub: https://github.com/zcyzcy88/zcyzcy88.github.io/blob/master/alert.js

Use las páginas de GitHub, NO use archivos brutos.

Motivo: las páginas de GitHub están basadas en CDN, los archivos sin formato no. El acceso a los archivos en bruto afectará directamente a los servidores de GitHub y aumentará la carga del servidor.



Puede vincular directamente a archivos sin procesar, pero es mejor no hacerlo ya que los archivos sin procesar siempre se envían con un encabezado de texto simple y pueden causar problemas de carga.


Ramifique su proyecto usando el nombre "gh-pages" y luego (poco después de la bifurcación) podrá usar una URL directa como https://username.github.com/project/master/style.css (usando su URL, y suponiendo que "style.css" es un archivo en la carpeta "principal" en la raíz de su repositorio "proyecto" ... y que su cuenta de Github es "nombre de usuario").