ui route,node,express,404 html files

时间:2016-03-31 22:29:32

标签: javascript angularjs node.js express

我无法想象我的生活。我正在使用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.感谢我能得到的所有帮助。谢谢!

3 个答案:

答案 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' 
        });