UI маршрут, узел, экспресс, 404 HTML-файлов

0

Я не могу понять это для жизни меня. Я использую 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 с этим, не обнаруживая 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. Цените всю помощь, которую я могу получить. Благодарю!

Теги:
express

3 ответа

0
Лучший ответ

Я получил решение. Это только одна из тех ошибок. Я искал свой app.js, у меня была вся правильная маршрутизация, так как Арбель помогал мне.

// 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' 
        });
1

Вам все равно нужно "подключить" этот router к app.

app.use('/', router);

router будет относиться к пути, к которому вы его монтируете, в этом случае root /. Вы можете подключить его к любому пути, и router будет относиться к этому пути. например

app.use('/bar', router);

И ваш мини-приложение вашего router будет вызываться, когда приложение get (или любой другой метод HTTP) /bar/ path.

  • 0
    О, я полностью пропустил это. Просто так я понял это. Мне нужно добавить маршруты в файл app.js узлов для всех маршрутов, которые я установил в моей конфигурации ui.route ?
  • 0
    Если, скажем, /views/partial-home.html будет корректным при подключении router к / (имеется в виду, например, localhost: 3000 / views /partal- home.html - правильный адрес частичного), то нет, поскольку путь правильный , но если части находятся в другом месте, вам понадобится другой обработчик запросов для этого другого пути.
Показать ещё 5 комментариев
0

Эй, вы можете настроить механизм просмотра приложений как html, чтобы он мог отображать html файл.

var ejs = require ("ejs");

app.set('views',//путь к папке просмотров);

app.engine('html', ejs.renderFile);

app.set('view engine', 'html');

Ещё вопросы

Сообщество Overcoder
Наверх
Меню