2015-04-29 11 views
14

Nauczyłem się używać stosu MEAN w celu tworzenia aplikacji internetowych i do tej pory było dużo zabawy. Zamiast używać generatorów kiosków lub aplikacji npm do generowania mojego kodu, budowałem całą aplikację od podstaw. W ten sposób wiem, jak każdy element łączy się i co dzieje się z moją aplikacją. Właśnie zaczyna się podłączyć przedni i tylny koniec mojej aplikacji, kiedy spojrzał na konsoli programisty i zobaczyłBłąd GET MEAN App

GET http://blog.dev/bower_components/angular/angular.js 

Nie tylko kanciasty, ale każdy inny zasób mam (modernizr, kątowe-trasy, mootools, restangular , itp ...). Kiedy używasz kątowego generatora yeoman, powinieneś uruchomić polecenie grunt serve, aby uruchomić kątową stronę. Ponieważ zbudowałem aplikację od zera i używam npm dla mojego narzędzia do budowania, nie wiedziałem, jak zbudować serwer front-end. Tak, po prostu poszedłem z prostym hostem wirtualnym nginx, wskazując na mój index.html. Tutaj jest config:

server { 
     listen 80; 

     server_name blog.dev; 

     root /home/michael/Workspace/blog/app; 
     index index.html index.htm; 

     location/{ 
       try_files $uri $uri/ =404; 
     } 
} 

Nie jestem pewien, co innych zmiennych może wpływać na sytuację, więc jeśli coś przeoczyłem chcę i będę szczęśliwy, aby dać Ci to, czego potrzebujesz!

+0

Sprawdź uprawnienia do folderów/plików, może być użytkownik nginx nie może odczytać z niego. – vanadium23

+0

Nie:/Próbowałem chmod -R 755 na cały projekt i nic się nie zmieniło. – Michaelslec

+0

Sprawdź ścieżki. Czy są tam pliki? – pykiss

Odpowiedz

5

Jeśli używasz średniej ilości stosów, powinieneś być w stanie obsługiwać zarówno tył, jak i serwer bezpośrednio z węzłem.

Nie jestem pewien twojej struktury projektu, ale tutaj jest struktura dla której teraz pracuję.

/bin --contains a file called www.js (used to launch app) 
/data 
/models 
/node_modules 
/public -- contains my angular implementation 
/routes -- contains express routes 
/temp 
/upload 
/views 
app.js -- main configuration for express 
api.js -- my apis 
package.json 

w pliku /bin/www.js masz kod uruchamiający serwer węzła.

var app = require('../app'); 

app.set('port', process.env.PORT || 3000); 

var server = app.listen(app.get('port'), function() { 
debug('Express server listening on port ' + server.address().port); 
});   

Będziesz również musiał wyrazić konfiguracji i twoi trasy tak dobrze wyglądać na trasach pierwszy w katalogu tras Mam plik o nazwie index.js

W tym pliku zdefiniować jedną trasę, która prowadzi do mojej kanonicznej strony index.html.

var express = require('express'); 
var router = express.Router(); 

/* GET home page. */ 
router.get('/', function(req, res) { 
res.redirect('/pages/index.html'); 
}); 

module.exports = router; 

Oczywiście trzeba skonfigurować ekspres.

process.env.TMPDIR = 'tmp'; // to avoid the EXDEV rename error, see   http://stackoverflow.com/q/21071303/76173 

var express = require('express'); 
var path = require('path'); 
var favicon = require('static-favicon'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 
var multer = require('multer'); 
var flow = require('./flow-node.js')('tmp'); 
var multipart = require('connect-multiparty'); 
var multipartMiddleware = multipart(); 
var uuid = require('uuid'); 
var mongoose = require('mongoose'); 
var session = require('express-session'); 

var routes = require('./routes/index'); 

var app = express(); 

app.use(favicon()); 
app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded()); 
app.use(cookieParser()); 
app.use(session({genid: function(req) { return uuid.v4()}, secret: 'XXXXXXXXXXX', 
    saveUninitialized: true, 
    resave: true})); 
app.use(express.static(path.join(__dirname, 'public'))); 

app.use('/', routes); 
app.use('/users', users); 

module.exports = app; 

Teraz zakładając, że masz swoje kątowe plików i JavaScript w katalogu „” gdzieś publicznego, powinny być w stanie uruchomić węzeł za pomocą następującego polecenia.

node bin/www 

I punkt w przeglądarce na http://localhost:3000 i być w biznesie.

Mam nadzieję, że to pomoże i szczęśliwe uczenie się.