2017-07-22 1 views
0

Meine Verzeichnisstruktur ist wie folgt. "-" zeigt eine einzelne Ebene im Ordner an.kann nicht "src" -Tag in einer richtigen relativen Weise verwenden

--file_uploads 
----routes 
----views 
------index.html 
------app.js 
------angular.min.js 
----public 
----node_modules 
----app.js 
----package.json 

Im file_uploads Ordner öffne ich das Terminal und schreiben „sudo nodemon app“, meine Server zu laufen beginnt, wenn ich gehe zu „localhost: // 3000“ Ich bekomme zwei Fehler, dh „Fehler 404 kann nicht eckig finden .min.js "und" Fehler 404 kann app.js nicht finden ".

In meinem index.html habe ich diese zwei Zeilen Code für Quelle „src“: -

<script type="text/javascript" src="./views/angular.min.js"></script> 

<script src="./views/app.js"></script> 

Bitte führen Sie mir, wo ich falsch mache, meine index.html-Seite öffnet, aber nicht finden konnten, der relative Pfad zu angular.min.js und app.js.

Ok, ich habe eine Lösung, um Dateien von http-Server zu trennen, aber ich brauche das mit meinem ausdrücklichen ich könnte Server HTML-Code zusammen mit angularjs Code. Wie kann ich Express + Knoten + Angular + HTML erreichen?

In meiner app.js Server-Seite mache ich das.

var cons = require('consolidate'); 

// view engine setup 
app.engine('html', cons.swig); 
app.set('views', path.join(__dirname+ "/views")); 
app.set('view engine', 'html'); 
app.use(express.static(path.join(__dirname, 'public'))); 
app.use('/', index); 
app.use('/users', users); 
app.use('/profile',profile); 

Und wenn es um index.js kommt ich dies tun: -

router.get('/', function(req, res, next) { 
res.render('index.html'); 
}); 

PS, MY SERVER KORREKT index.html rendert.

+0

Wenn Ihr Views-Ordner korrekt geliefert wird, sollten Sie Ihre Dateien wie '/ angular.min.js' und' app.js' laden – Win

+0

In index.html Ich habe Inhalt geschrieben, der angezeigt wird, bedeutet Index. html funktioniert, "/angular.min.js" und "/app.js" funktioniert nicht. – Asim

+0

Sie müssen die Quelle der relevanten Teile Ihres Servers angeben, nämlich den Teil, der statische Dateien bereitstellt. Dies geschieht nicht automatisch und Sie geben normalerweise den Stammordner für Ihre Dokumente an. – jcaron

Antwort

1

verwenden, da Sie ausdrücklich

app.use(express.static('public'))

Dadurch werden alle Dateien im öffentlichen Ordner dienen verwenden sind. Platzieren Sie Ihre /angular.min.js und /app.js dort und Ihre index.html sollte sie abholen. Natürlich können Sie den Ordner "views" bereitstellen, aber die darin enthaltene index.html könnte kollidieren.

Stellen Sie sicher, dass Skripts von root z. /angular.min.js und /app.js

  1. Installieren: npm installieren -g http-server.
  2. cd in views
  3. Lauf http-server
  4. -http://localhost:8080/ in Browser gehen

Nodemon wird verwendet, um eine Server-Datei nicht Client-Dateien zu dienen, wie Sie zu dienen versuchen.

+0

Dann wird nodemon für meinen Nodejs-Code und http-Server -o für meinen eckigen und HTML-Code gleichzeitig laufen? – Asim

+0

@AsimRaja Sie möchten Express verwenden und die Dateien bereitstellen, während Sie gleichzeitig den Servercode ausführen. Es sei denn, Sie führen kein serverseitiges Rendering durch.Dann benutze das obige Beispiel. – Win

+0

Nun, ich mache Server-Side-Rendering. Ich kann keine Lösung für dieses Problem finden, das mein knotemon ausführen konnte Server.min.js und app.js Datei. – Asim

Verwandte Themen