js-File wird nicht gefunden

Hallo,

ich experimentiere ein bisschen mit angular.js und möchte eine kleine web-app aufbauen. Im Grunde funktioniert sie auch. Bis jetzt habe ich angular über den CDN-link eingebunden wollte die Dateien aber lokal speichern.

Meine Ordner-Struktur sieht wie folgt aus:

-app
-node_modules
-angular
(angular.js)
-public
(index.html)

In der index.html Datei möchte ich mit dem Tag

Angular einlesen. Als Server nutze ich node.js und starte ihn im „app-Ordner“.

Habe ich hier mit den zwei punkten einen Fehler gemacht?

Vielen Dank schon mal für die Antworten!

Marc

Wenn dein DOCUMENT-ROOT im Public Verzeichnis liegt müssen auch da deine gelinkten Dateien liegen.
Der User hat auf die anderen Verzeichnisse keinen zugriff.

Danke für die schnelle Antwort! Das heißt, es wäre wahrscheinlich am sinnvollsten, meine index.html in den App-Ordner zu legen?
VG
Marc

sollte es nicht einfach ohne die „…“ gehen? vorausgesetzt node_modules liegt in app und nicht daneben…
Das sieht man leider nicht so gut

Nein würde ich nicht machen, alles worauf der User Zugriff haben muss liegt unter dem Verzeichnis public(DOCUMENT-ROOT), die Anwendung liegt darüber wie du sonst die Struktur aufbaust bleibt dir überlassen.

Ich sehe gerade, die Leerzeichen sind verloren gegangen. Public und node_modules sind beide im app-Ordner und angular entsprechend im node_modules Ordner.

@bodo92 Dann komme ich aber nicht drum herum die angular Dateien auch in den public Ordner zu verschieben oder gibt es eine andere Möglichkeit?

Wenn du die Struktur so anlegst sollte es doch eigentlich gehen!?

- application - node_modules - public //Document Root index.html - includes angular.js

Dachte anfangs aufgrund der fehlenden Leerzeichen das bei dir alle Verzeichnisse auf der Selben Ebene liegen…

Nö, das sind PHP-Strukturen. Für SinglePage Apps mit Angular braucht man keinen Public Folder. Die index.html sollte in der document root liegen.

Man verlinkt aus Node- und Bower-Verzeichnissen nicht direkt, sondern kompiliert die darin enthaltenen Dateien. Mit Node.js kann man viele Dinge tun, z.B. eine Toolchain aufbauen oder Full JS Applications entwickeln. Aber bevor ich jetzt hier ins Detail gehe, wie weit reichen denn deine Kenntnisse? Falls du gerade erste Schritte in Angular machst, reicht auch die CDN-Verlinkung und über Strukturen spuckt Google genügend Ergebnisse aus.

Wenn du dich zusätzlich mit Node beschäftigen willst, sollte dein erster Anlaufpunkt Grunt sein. Grunt ist ein Taskrunner, der Dateien kompiliert, lintet und automatisch Development und Production Environments erstellen kann. Dabei lernst du auch, wie Apps strukturiert werden. Von Grunt wäre dann der nächste Schritt Yeoman, bzw. mean.io / mean.js.

Ok, dann entschuldige bitte die Verwirrung.
Habe selbst noch nichts mit node gemacht aber hab mir dazu mal folgendes tut angesehen und daher mein Lösungsvorschlag.
http://nodecode.de/chat-nodejs-websocket

Realtime Apps mit Node und socket.io sind ein ein klassisches Szenario. Bei jedem Update am Model werden sämtliche Clients (mit Ausnahme des ändernden) benachrichtigt. Das ist quasi Three-Way-Databinding im Gegensatz zum Two-Way-Databinding von Angular, bei dem das Model-View-Update nur bei dem Client stattfindet, der Änderungen vornimmt.

Node plus Grunt wird dagegen beim Development eingesetzt. Bei jedem Speichern einer Datei werden alle .js, .scss, .html files kompiliert, kopiert und der Browser automatisch refreshed. Auf Production kann dann auch ein Nginx oder Apache arbeiten.

Vielen Dank für die Antworten und Tipps. Tiefgreifende Kenntnisse habe ich noch nicht, von daher bin ich froh über die Ansatzpunkte!