简体   繁体   English

角“ /”路线不适用于Express

[英]Angular '/' route not working with Express

I'm trying to serve a home view using Express/Angular, such that when the root url ('/') is accessed, a view is loaded. 我正在尝试使用Express / Angular提供主视图,以便在访问根URL('/')时加载视图。 Right now navigating to http://localhost:3000 displays an empty page with <!-- ngView: --> and nothing else. 现在导航到http://localhost:3000会显示一个带有<!-- ngView: -->的空白页面,而没有其他内容。 Navigating to http://localhost:3000/about displays the about page as expected. 导航到http://localhost:3000/about将按预期显示关于页面。 How do I get the home partial to display when the root is accessed? 访问根目录后,如何显示home局部?

app.js (w/ Express 4.9.0) app.js(含Express 4.9.0)

var express = require('express');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var routes = require('./routes');
var path = path = require('path');

app.set('port', process.env.PORT || 3000);
app.use(express.static(path.join(__dirname, 'public'))); 

server.listen(app.get('port'), function() {
    console.log('Listening on port ' + app.get('port'));
});

app.set('views', __dirname + '/views');
app.set('view engine', 'jade');

app.get('/', routes.index);
app.get('/partials/:name', routes.partials);
app.get('*', routes.index);

routes/routes.js 路线/ routes.js

exports.index = function(req, res){
    res.render('index');
};

exports.partials = function (req, res) {
    var name = req.params.name;
    res.render('partials/' + name);
};

views/index.jade 意见/ index.jade

doctype
html(ng-app="myApp")
    head
        meta(charset='utf8')
        base(href='/')
        title Angular Express Seed App
        link(rel='stylesheet', href='/css/app.css')
    body
        div(ng-controller='AppCtrl')
            div(ng-view)


        script(src='bower_components/angular-loader/angular-loader.js')
        script(src='bower_components/angular/angular.js')
        script(src='bower_components/angular-route/angular-route.js')
        script(src='bower_components/socket.io-client/socket.io.js')
        script(src='js/app.js')
        script(src='js/main.js')
        script(src='js/services.js')
        script(src='js/controllers.js')
        script(src='js/filters.js')
        script(src='js/directives.js')

public/js/app.js 公共/ JS / app.js

angular.module('myApp', [
    'myApp.controllers',
    'myApp.filters',
    'myApp.services',
    'myApp.directives',
    'ngRoute'
]).
config(function ($routeProvider, $locationProvider) {
    $routeProvider.
    when('/', {
        templateURL: 'partials/home',
        controller: 'MyCtrl2'
    }).
    when('/about', {
        templateUrl: 'partials/about',
        controller: 'MyCtrl1'
    }).
    otherwise({
        redirectTo: '/'
    });

    $locationProvider.html5Mode(true);
});

I also have a views/partials/home.jade and a views/partials/about.jade 我也有一个views/partials/home.jade和一个views/partials/about.jade

I think you may have misspelled templateUrl in 我认为您可能在拼写了templateUrl

when('/', {
    templateURL: 'partials/home',
    controller: 'MyCtrl2'
}).

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM