2017-07-13 1 views
1

Ich erstellte eine einfache Javascript-App mit mojs, eine Animationsbibliothek, und wollte es auf Heroku bereitstellen. Zuerst habe ich versucht, "heroku create" usw. zu erstellen und die originale App auf heroku zu installieren - die App war zugänglich, aber das Skript hat nicht funktioniert. Zweitens habe ich versucht, eine App zu ändern, die ich von Heroku Website nach dem Node.js Tutorial gemacht, vonDas Skript funktioniert nicht nach der Bereitstellung einer Javascript-App auf Heroku

<script src="http://cdn.jsdelivr.net/mojs/latest/mo.min.js"></script> 
    <script src="myburstscript.js"></script> 

Kopieren Sie das Skript ein Skript Bootstrap-Tag eingefügt ich in den Ordner dieser App gemacht

var myBurst = new mojs.Burst({ 

    count:10, 
    radius: {0 :150}, 
    angle: {0 : 180}, 
    children : { 
     //fill:{'red' : 'blue'}, 
     fill: ['red', 'purple', 'blue', 'violet'], 
     duration : 1000, 
     radius: 10, 
     shape: 'polygon', 
     delay: 'stagger(50)' 
} 

}); 

document.addEventListener('click', function(e) { 
    myBurst.replay(); 

}); 

dann läuft „npm Mojš installieren“, und, wie üblich,

git add . 
git commit -m "somedumbsh*t" 
git push heroku master 

Aber es spielte nicht die Animation auf meinem localhost spielt. Protokolle zeigen keine Fehler. Der Rest, der HTML-Teil der Seite, funktioniert gut. Warum?

Antwort

1

Heroku benötigt einige Server, nicht nur den clientseitigen Code.

Wenn Sie Ihre App nicht mit starten:

PORT=4446 npm start 

und dann auf Zugang:

dann werden Sie nicht in der Lage sein, es auf Heroku Gastgeber . (Ich nehme an, dass Sie Node verwenden, wie durch die Tags in Ihrer Frage angezeigt.) Es ist wichtig, dass Ihre App die in der Umgebungsvariable PORT angegebene Portnummer und nicht nur eine fest codierte Portnummer verwendet.

Zum Beispiel, wenn Sie alle Ihre statischen Dateien (HTML, Client-Site-JavaScript, CSS, Bilder usw.) in ein Verzeichnis namens html, dann können Sie einen einfachen Server wie diese, z. genannt server.js:

'use strict'; 

const path = require('path'); 
const express = require('express'); 

const app = express(); 

const port = process.env.PORT || 3338; 

app.use('/', express.static(path.join(__dirname, 'html'))); 

app.listen(port,() => console.log(`Listening on http://localhost:${port}/`)); 

Beispiel package.json:

{ 
    "name": "your-name", 
    "version": "0.0.0", 
    "description": "Your description", 
    "scripts": { 
    "start": "node server.js", 
    }, 
    "author": "Your details", 
    "license": "MIT", 
    "dependencies": { 
    "express": "^4.15.2", 
    } 
} 

Siehe auch dieses Beispiel, dass ich für eine Komplettlösung auf GitHub veröffentlicht, die sogar eine Deploy Heroku-Taste hat:

Es ist ein Beispiel, das für diese Antwort erstellt wurde:

, wo Sie weitere Informationen darüber, warum es geschrieben wurde, so finden.

+0

Ich kann darauf zugreifen und ich kann es bereitstellen. Das einzige Problem ist, dass mein Mojs-Skript nicht läuft – NiHao92

+0

@ NiHao92 "Skript läuft nicht" ist nicht genug für jeden, um Ihnen zu sagen, was los ist. Wird die HTML-Seite geladen? Gibt es Fehler in der Konsole? Gibt es in den Netzwerkverbindungen fehlgeschlagene Anforderungen? Wird mo.min.js geladen? Wird myburstscript.js geladen? Ist myburtscript.js wie serviert von heroku enthalten genau das, was es sollte? Hat es den richtigen Inhaltstyp? Gibt es keine CORS-Probleme? Einfach "läuft nicht" bedeutet wirklich nichts. Sie müssen es richtig untersuchen, wenn Sie erwarten, dass Ihnen jemand hilft. – rsp

+0

Protokolle zeigen keine Fehler. Die HTML-Seiten werden normal geladen. Wie für andere Fragen in Ihrer Antwort - wie man das herausfinden? – NiHao92

Verwandte Themen