使templateUrl指向一个html文件

在项目的angularApp.js中,我想用templateUrl定义一个状态。 首先,我尝试了以下内容:

 app.config(['$stateProvider', function ($stateProvider) { $stateProvider .state('editor', { url: ..., templateUrl: '/editor.html', controller: ... }) 

控制台显示[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (editor.html, line 0)http://localhost:3000/editor.html[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (editor.html, line 0) ,而不是editor.html

然后,我尝试了一个相对path

 `templateUrl: '../../../../../Start/PRODSERVER/funfun/views/editor.html'`, 

控制台在http://localhost:3000/Start/PRODSERVER/funfun/views/editor.html显示相同的错误。 但是,在浏览器中打开http://localhost/Start/PRODSERVER/funfun/views/editor.html确实会打开正确的文件。

有谁知道如何解决这个问题?

PS: angularApp.js在文件夹public/javascripts/ ; 主页index.ejs在文件夹views/ ; 我已经把editor.html放在文件夹views/中。 app.js只是在主文件夹中:

 var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var mongoose = require('mongoose'); var passport = require('passport'); require('./models/Posts'); require('./models/Comments'); require('./models/Users'); require('./config/passport'); mongoose.connect('mongodb://localhost/news'); var index = 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', 'ejs'); // uncomment after placing your favicon in /public //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use(passport.initialize()); app.use('/', index); 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 handler app.use(function(err, req, res, next) { // set locals, only providing error in development res.locals.message = err.message; res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page res.status(err.status || 500); res.render('error'); }); module.exports = app; 

您的HTML文件是一个静态文件,所以它将从您使用express.static函数定义的静态文件夹中提供。

 app.use(express.static(path.join(__dirname, 'public'))); 

将您的模板HTML放在公用文件夹中,以使其可以访问。