我无法想象我的生活。我正在使用Node,Express,Angular和ui.route。我想要完成的是以下内容,
index.html
作为主人some.html
作为部分我将应用程序设置为使用ejs
而不是jade
(不知道这是否重要)?
我得到的错误是它无法找到localhost:3000/views/partial-home.html
404,我在路由中尝试了所有类型的不同路径,
(function(){
var app = angular.module('routerApp', ['ui.router']);
app.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/about');
$stateProvider
.state('home-about', {
url: '/home-about',
templateUrl: '/views/partial-home.html'
})
.state('about', {
});
});
}());
我的app.js
文件中没有任何特别的内容可以处理html或route/index.js
,目前我认为它也使用了index.ejs
。我在使用html时遇到了哪些步骤,为什么错误与它没有找到partial-home.html
//routes/index.js
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
module.exports = router;
有关于这个主题的帖子,但没有一个总结我使用html文件的两个问题以及为什么404.感谢我能得到的所有帮助。谢谢!
答案 0 :(得分:1)
你还需要安装'这var supertest = require('supertest')
到router
。
app
app.use('/', router);
将相对于您将其安装到的路径,在本例中为根router
。您可以将其安装到任何路径,/
将相对于该路径。 e.g。
router
您的app.use('/bar', router);
'迷你应用程序'将在应用程序router
(或任何其他HTTP方法)get
路径时调用。
答案 1 :(得分:0)
嘿,您可以将应用视图引擎设置为html,以便它可以呈现html文件。
var ejs = require(" ejs");
app.set(' views',//文件夹视图路径);
app.engine(' html',ejs.renderFile);
app.set('查看引擎',' html');
答案 2 :(得分:0)
我得到了解决方案。这只是其中一个陷阱。我正在调查我的app.js
,当Arbel帮我时,我的所有路线都正确。
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
所以当我看到这一行时,我正在查看该文件并且它击中了我,这是一个静态资源。
app.use(express.static(path.join(__dirname, 'public')));
所以我将我的html文件放入public/partials
,就是这样。
现在我的route
看起来像这样
$stateProvider
.state('home-about', {
url: '/home-about',
templateUrl: '/partials/partial-home.html'
});