Я просмотрел интернет для кого-то с аналогичной проблемой, но до сих пор нет решений. Сравнивая мое приложение с Angular-Express-seed, Angular-Express-Master и любой другой популярный пример, ничего, похоже, не сломано, но он просто не работает. У кого-нибудь есть идеи, почему это может быть?Angular.js и Express: Маршрутизация не работает
Постараюсь запасных деталей, не снимая, что может быть проблематичным бит кода:
/app.js
// All environments
app.set('views', __dirname + '/views');
app.set('port', process.env.PORT || 3000);
app.engine('.html', require('ejs').renderFile);
app.set('view engine', 'html');
app.set("view options", { layout: false });
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser());
app.use(express.session(
{ secret: 'spunkydelicious',
cookie : {
maxAge: (3600000*24*7) // 1 week
}
}
));
app.use(passport.initialize());
app.use(passport.session());
app.use(require('express-jquery')('/jquery.js'));
app.use(express.static(path.join(__dirname, '/public')));
app.use(app.router);
...
app.get('/', index.index);
app.get('/partials/:name', index.partials);
app.get('*', index.index);
, где «индекс» из index.index, индекс .partials и т.д. соответствует этому:
/app/controllers/index.js
exports.index = function(req, res){
res.render('index');
};
exports.partials = function(req, res) {
var name = req.params.name;
console.log('Hurah!');
res.render('partials/' + name);
};
/public/javascripts/app.js
'использовать строгий';
// Объявляем модуль приложения уровня, который зависит от фильтров, а также услуги
angular.module('emit', []).
config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
$routeProvider.when('/', {
templateURL:'partials/test',
controller: AppCtrl
}).
otherwise({
redirectTo: '/'
});
$locationProvider.html5Mode(true);
}]);
/public/javascripts/controllers.js
'use strict';
/* Controllers */
function AppCtrl($scope) {
console.log('123');
}
/views/index.html
<!DOCTYPE html>
<html ng-app="emit">
<head>
<base href="/">
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<div ng-view></div>
<!-- Plugins -->
<script src="/javascripts/vendor/angular/angular.js"></script>
<!-- Angular -->
<script src="/javascripts/app.js"></script>
<script src="/javascripts/controllers.js"></script>
<!-- Other scripts -->
**strong text** <script src="/javascripts/script.js"></script>
</body>
</html>
/views/partials/test.html
<div class="">Yay!</div>
Прощения длина кода, я просто не могу взломать то, что я делаю неправильно. Никакие ошибки не регистрируются сервером клиентской консоли. Какие шаги отладки я мог бы предпринять?
Я думаю, что ваша проблема заключается в местоположении partials/test.html. По умолчанию Angular будет искать его под «root», который в вашем случае будет находиться под PUBLIC/partials/test.html не под VIEWS/partials/test.html –
Да, попробуйте что-то вроде public/views/partials и public/views /text.html – enducat
Да, я пробовал обманывать это, но никакого результата. Сравнив мое приложение с [Угловое семя] (https://github.com/btford/angular-express-seed), он должен просто прекратить загрузку представлений с сервера, поскольку они загружают их с помощью рендеринга Jade. Но я действительно думаю, что вы на что-то, в том, что явные и угловые системы маршрутизации, похоже, конкурируют. –