Angular-Ui-Router ist nicht routing während der Verwendung node.js
Ich bin mit angular ui router. Der router scheint zu funktionieren perfekt auf der Startseite index.html. Aber andere navigation nicht funktioniert.
Hier ist mein stateprovider Winkel:
var app = angular.module('myApp', ['ui.router']);
app.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/");
$stateProvider
.state("home", {
url: "/",
templateUrl: "../partials/home/index.html"
})
.state("login", {
url:"/login",
templateUrl: "../partials/account/login.html"
})
.state("register", {
url: "/register",
templateUrl: "../partials/account/register.html"
})
.state("values", {
url: "/values",
templateUrl: "../partials/test/values.html"
})
;
});
HTML-Code in meine main index.html:
<!--Content -->
<div class="container">
<div ui-view></div>
</div>
<!-- END Content -->
Wenn ich navigieren, die die Seite localhost:8080/login bekomme ich diese:
Ich würde denken, ich sollte nicht sogar sein, sehen Sie diese Seite, wenn Sie es nicht finden können. Sollte es nicht umleiten, mich wieder zu "/" weil der $urlRouterProvider.sonst(). Neben diesem Punkt, obwohl die Vorlagen-url /partials/account/login.html Existiert.
Ich bin etwas neu auf node.js und ich bin gespannt, ob der Hinweis Datei-server versucht zu route und trumpfen mein Winkel ein? Ich bin mit http-server, die wahrscheinlich die meisten common one.
Ich bin auch mit Express-Knoten, falls das hilft. Und hier ist der code für app.js wo ich denke, das problem kann aus:
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 routes = require('./routes/index');
var users = require('./routes/users');
var app = express();
//view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(favicon());
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', routes);
app.use('/users', users);
///catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
///error handlers
//development error handler
//will print stacktrace
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
});
}
//production error handler
//no stacktraces leaked to user
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
});
module.exports = app;
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich es herausgefunden. Tun Sie das unten machte es Arbeit.
Den gesamten app.js falls jemand neugierig ist, wo es geht.
Natürlich müssen Sie in Ihre Winkel-code:
Eine Sache zu beachten, dass got me. Sie müssen den server neu starten, damit das funktioniert. ctr+c und fügen Sie dann diesen code dann neu starten, server. Viel Glück
haben Sie versucht, mit dem gleichen Verzeichnis für Ihre partials :
verschieben partials/account/login.html" zu partials/home/login.html"
Außerdem sind Sie mit Ihrer eigenen server.js express-Konfiguration, oder ein yeoman fullstack ?
eckig ist klar Umgang mit dem routing, aber es scheint, dass nodejs ist nicht zu finden, das Vermögen...
Sicher sein, eine bestimmte Aufgabe für das servieren von partial-Dateien in Ihrem server.js
für Ihren Fall, es könnte mir etwas wie :
Als ich sehe, Sie verlangen, um Ihren Knoten-api, die gibt es nicht irgendeine route wie /login und Sie erhalten 404.
Sollten Sie versuchen localhost:8080/#/login