it-swarm.com.de

So verknüpfen Sie Dateien direkt aus Github (raw.github.com)

Dürfen wir Dateien direkt von Github aus verknüpfen?

<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>

Ich weiß, dass dies in Google Code zulässig ist. Auf diese Weise muss ich mich nicht darum kümmern, eine lokale Datei zu aktualisieren.

48
anjanesh

natürlich, warum nicht? Es wird sogar ein Update gespeichert, wenn nicht jemand die Geschichte in Git ändert und einen Push erzwingt.

1
three

Sie können den externen Server rawgithub.com verwenden. Entfernen Sie einfach einen Punkt zwischen den Wörtern 'raw' und 'github' https://raw.github.com/ .. => https://rawgithub.com/ und verwenden Sie ihn. Mehr Infos findest du in dieser Frage.

42
AuthorProxy

Der tolle Dienst RawGit wurde bereits erwähnt, aber ich werde noch einen in den Ring werfen: GitCDN.link

Leistungen: 

  • Hiermit können Sie eine Verknüpfung zu bestimmten Commits herstellen und die neuesten automatisch abrufen (aka master).
  • Verursacht keinen Schaden durch hohes Verkehrsaufkommen; RawGit fordert, dass dev.rawgit.com-Links nur während der Entwicklung verwendet werden, wobei Sie als GitCDN Zugriff auf die neueste Version erhalten, ohne dass die Server explodieren
  • Sie haben die Möglichkeit, HTML, CSS und JavaScript automatisch zu minimieren oder wie angegeben zu bedienen ( https://min.gitcdn.link ).
  • Fügt Kompression hinzu (GZip)
  • Fügt alle korrekten Header hinzu (Content-Type, Cache-Control, E-Tag usw.)

Vollständige Offenlegung, ich bin Projektbetreuer bei GitCDN.link

41
Shane Gadsby

Sie müssen die folgenden Schritte ausführen

  1. Holen Sie sich die rohe URL der Datei von github. Das ist etwas wie https://raw.githubusercontent.com/username/folder/example.css

  2. Besuchen Sie http://rawgit.com/ . Fügen Sie die git-URL oben in das Eingabefeld ein. Es werden zwei URLs generiert, eine für die Entwicklung und eine andere für die Produktion.

  3. Kopieren Sie einen von ihnen und Sie sind fertig.

Die Datei fungiert als CDN. Sie können auch Gist-URLs verwenden.

13
Nitesh

Sie können direkt auf Raw-Dateien verlinken, aber es ist am besten, dies nicht zu tun, da die Raw-Dateien immer mit einem einfachen/Text-Header gesendet werden und Ladeprobleme verursachen.

12
Benjamin Intal

Verzweigen Sie Ihr Projekt mit dem Namen "gh-pages", und dann können Sie (kurz nach dem Verzweigen) eine direkte URL verwenden, z. B. https://username.github.com/project/master/style.css (unter Verwendung Ihrer URL und unter der Annahme, dass "style.css" eine Datei im Ordner "master" im Stammverzeichnis Ihres Projekt-Repositorys ist ... und dass Ihr Github-Konto "username" ist).

6
Jeff Warren

GitHub-Seiten: https://yourusername.github.io/script.js
GitHub Repo-Rohdateien: https://github.com/yourusername/yourusername.github.io/blob/master/script.js

Verwenden Sie GitHub Pages, NICHT - Verwenden Sie RAW-Dateien.

Grund: GitHub Pages basieren auf CDN, Rohdateien nicht. Der Zugriff auf Rohdateien wird direkt auf GitHub-Servern ausgeführt und erhöht die Serverlast.

1
Sista Fiolen

Nachdem ich nach dieser gleichen Funktionalität gesucht hatte, schrieb ich schließlich mein eigenes PHP-Skript, das als Proxy fungierte. Das Problem, auf das ich stieß, war sogar, wenn Sie die RAW-Version/den Link von Github und den Link dazu auf Ihrer eigenen Seite abrufen. Der übergebene Header war 'text/plain' und Chrome führte meine JavaScript-Datei nicht von Github aus. Ich mochte auch die anderen Links, die für die Verwendung von Drittanbieterservices bereitgestellt wurden, aufgrund der offensichtlichen möglichen Sicherheits-/Manipulationsprobleme nicht.

Mit diesem Skript kann ich also den RAW-Link von Github übergeben, das Skript die korrekten Header setzen und dann die Datei so ausgeben, als würde sie von meinem eigenen Server stammen. Dieses Skript kann auch mit einer sicheren Anwendung verwendet werden, um nicht sichere Skripts abzurufen, ohne SSL-Fehler zu warnen, die auf "Nicht sichere Links verwendet" aufmerksam machen.

Verlinkung:

<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;
?>

Wenn auf Ihrem Webserver "allow_url_include" aktiv ist, stellt GitHub, das die Dateien als unformatierte Text/Klartext bereitstellt, kein Problem dar, da Sie die Datei zuerst in ein Skript PHP einschließen und ihre Header in den richtigen MIME-Typ ändern können.

0