2017-07-22 1 views
0

La structure de mon répertoire est la suivante. "-" affiche un seul niveau dans le dossier.ne peut pas utiliser la balise "src" correctement

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

Dans le dossier file_uploads j'ouvre le terminal et écrire « sudo nodemon app », mon serveur commence à courir, quand je vais à « localhost: // 3000 » Je reçois deux erreurs-à-dire « erreur 404 ne peut pas trouver angulaire .min.js "et" l'erreur 404 ne trouve pas app.js ".

Dans mon index.html je ces deux lignes de code pour la source « src »: -

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

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

S'il vous plaît me guider là où je fais mal, ma page index.html s'ouvre, mais n'a pas pu trouver le chemin relatif à angular.min.js et à app.js. Ok, j'ai une solution pour couper les fichiers de http-server, mais j'ai besoin de cela avec mon express, je pourrais être en mesure de serveur code HTML avec le code angularjs. Comment puis-je atteindre express + node + angular + html?

Dans mon côté app.js serveurs je le fais.

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

Et quand il vient à index.js je fais ceci: -

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

PS, mon serveur RENDRE CORRECTEMENT index.html.

+0

Si votre dossier de vues est correctement servi, vous devriez charger vos fichiers comme '/ angular.min.js' et' app.js' – Win

+0

Dans index.html J'ai un contenu écrit qui est affiché, signifie index. html fonctionne, "/angular.min.js" et "/app.js" ne fonctionnent pas. – Asim

+0

Vous devez fournir la source des parties pertinentes de votre serveur, à savoir la partie qui sert les fichiers statiques. Cela ne se produit pas automatiquement et vous spécifiez généralement le dossier racine pour vos documents. – jcaron

Répondre

1

Utilisez ce, puisque vous utilisez express

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

Cela servira tous les fichiers dans le dossier public. Placez votre /angular.min.js et /app.js là et votre index.html devrait les ramasser. Bien sûr, vous pouvez choisir de servir le dossier des vues, mais le fichier index.html risque de se contracter.

Assurez-vous que les scripts pointent de la racine, par ex. /angular.min.js et /app.js

  1. Installation: npm install -g http-server.
  2. cd en views
  3. run http-server
  4. aller à http://localhost:8080/ dans le navigateur

Nodemon est utilisé pour servir un fichier de serveur et non les fichiers clients comme vous essayez de servir.

+0

Puis nodemon fonctionnera pour mon code nodejs et http-server -o pour mon code angulaire et html simultanément? – Asim

+0

@AsimRaja Vous aurez besoin d'utiliser express et de servir les fichiers tout en exécutant votre code serveur simultanément. Sauf si vous ne faites pas le rendu côté serveur.Ensuite, utilisez simplement l'exemple ci-dessus. – Win

+0

Eh bien, je fais le rendu côté serveur. Je ne peux pas trouver une soultion à ce problème que mon nodemon fonctionnant pourrait server .min.js et le fichier app.js. – Asim