У меня проблема с настройкой экспресс-+ углового приложения.
Я могу загрузить в него файлы активов.
Я напишу здесь свой код из файла express и html. Насколько я вижу, Express возвращает только файл index.html и ничего больше, поэтому все маршруты возвращают этот файл.
Вот экспресс-код:
//server.js
// set up ========================
var express = require('express'),
bodyParser = require('body-parser'),
morgan = require('morgan'),
path = require('path'),
app = express(),
mongoose = require('mongoose'),
jwt = require('jsonwebtoken'), // used to create, sign, and verify tokens
config = require('./config'), // get our config file
User = require('./model/users'), //get our mongo model
routes = require('./middleware/routes');
// configuration =================
//var port = process.env.PORT || 8080;
app.use(express.static('/client'));
app.use(morgan('dev'));
app.use(bodyParser.urlencoded({'extended':'true'}));
app.use(bodyParser.json());
app.use(bodyParser.json({ type: 'application/json' }));
mongoose.connect(config.database);
app.set('superPin', config.secret);
// start server =================
//
app.listen(8080);
console.log('App strated and is listening on the port 8080');
//
app.get('/checkServer', function(request,response){
response.send('Works fine. Server started at default get routing to check if server runns.');
});
//
app.get('*',function(request,response){
response.sendFile(path.resolve('../client/view/index.html'));
});
//
//exports = module.exports = app;
и вот мой файл index.html:
<!DOCTYPE html>
<html>
<head>
<title>My </title>
</head>
<body ng-app="pmt">
<div ng-view></div>
<script src="client/assets/vendor/angular/angular.min.js"></script>
<script src="client/assets/vendor/angular-bootstrap/ui-bootstrap.min.js"></script>
<script src="client/assets/vendor/angular-message/angular-message.min.js"></script>
<script src="client/assets/vendor/angular-touch/angular-touch.min.js"></script>
<script src="client/assets/vendor/angular-ui-router/angular-ui-router.min.js"></script>
<script src="client/assets/vendor/angular-touch/angular-touch.min.js"></script>
<script src="client/assets/vendor/moment/min/moment.min.js"></script>
<script src="client/controller/routes.js"></script>
</body>
</html>
Я добавлю теперь экран печати из моей структуры папок:
и вот ссылка на репо: https://bitbucket.org/cojok/pmt/
Я видел другие связанные должности, но мне не удается найти то, что я делаю неправильно.
Я получаю эту ошибку в браузере
Я узнал свою ошибку, или это может быть только исправить. Но на самом деле это изменение
app.use(express.static('/client'));
app.get('*',function(request,response){
response.sendFile(path.resolve('../client/view/index.html'));
});
к этому
app.use('/client',express.static('../client/'));
app.get('/',function(request,response){
response.sendFile(path.resolve('../client/view/index.html'));
});
решил мою проблему.
Thnx
Насколько я понимаю, ваша проблема заключается в том, что вы не можете понять, как связывать файлы во взглядах или как устанавливать маршруты файлов в каталоге, поэтому здесь вы можете сделать это как Добавить каталоги, например
app.use(express.static(path.join(__dirname, 'scripts')));
app.use(express.static(path.join(__dirname, 'Content')));
app.use(express.static(path.join(__dirname, 'Angular')));
app.use(express.static(path.join(__dirname, 'Views/Main')));
app.use(express.static(path.join(__dirname, 'Views/Authentication')));
Поскольку контент, угловые и скрипты являются корневыми каталогами и ссылаются на файлы jquery как
<script src="angular-resource.js"></script> //in angular folder on root
<script src="angular-ui-router.js"></script> //in script folder on root
<script src="/Controllers/MainController.js"></script> // in angular folder with child directories