Я работаю над небольшим проектом AngularJS. Я использовал ui-router для маршрутизации различных html-шаблонов, которые отлично работают. Структура кода и папок показана ниже:
var app = angular.module('flapperNews', ['ui.router']);
app.config([
'$stateProvider',
'$urlRouterProvider',
function ($stateProvider, $urlRouterProvider) {
$stateProvider
.state('news', {
url: '/news',
templateUrl: 'news.html',
controller: 'MainCtrl'
})
.state('posts', {
url: '/posts/{id}',
templateUrl: 'posts.html',
controller: 'PostsCtrl'
});
$urlRouterProvider.otherwise('news');
}]);
Структура папок:
Однако, когда я попытался установить их в Nodejs/Expressjs, он показывает ошибку: GET http://localhost: 3000/news.html 404 (не найдено)
Я уже поместил все html-шаблоны в папку представлений, как показано ниже, но не работает. Я новичок в NodeJS, кто-нибудь знает, что произошло? Огромное спасибо заранее!
Поместите все ваши файлы HTML
в public
папку и получите доступ ко всем оттуда. Поскольку Angular
не удалось получить, что страницы с views
папки, так как на стороне сервера, что материал. Включение HTML
файлов в public
папку не является стандартом, но в основном используется при использовании Angular
Вы можете получить больше идей отсюда с ответом Jess
Я думаю, вам просто нужно /views/home.html
в вашем templateUrl:
/views/home.html
templateUrl:
и папка views
должна находиться внутри вашего public
каталога.
Я предполагаю, что у вас есть что-то близкое к app.use(express.static(path.join(__dirname, 'public')));
где-то? Это позволяет вам отображать статические файлы из public
каталога.
app.js
? в какой папке все вашиhtml
файлы существуют?