Полное раскрытие, довольно новое для Angular и Ionic, и я пытаюсь понять это концептуально и получить представление о лучших практиках, чтобы я не получил себя дальше по дороге.
Я создал веб-сайты и приложения на основе vanilla html/css/js в сочетании с back.ws и jquery mobile для пользовательского интерфейса приложения.
В тех случаях, когда требовалась веб-служба/бэкэнд, я в основном использовал файлы.ejs и частичные части для представлений и обслуживал их с использованием ответов res.render (динамически передавая данные в представление), например...
app.get('/showallcustomers', function(req, res){
db.connect("SELECT * from customers", [], function(result, error){
var data = result.rows;
res.render('pages/showall', {data:data})
});
});
... при использовании S3 для моих статических JS/CSS/изображений и т.д., чтобы облегчить загрузку веб-службы node.js в отношении статических ресурсов.
Другие запросы, сделанные через ajax, будут просто отправлять/получать json с сервера node.js.
Теперь, с угловыми js и разделением проблем, с видом, отдельным от контроллера и данных, я пытаюсь найти лучшее место для "хозяина" или для обслуживания своих представлений и контроллеров.
В случае приложения, в комплекте с кордорой, я мог бы легко оставить все эти угловые виды/контроллеры в корневой папке www приложения и упаковать их с помощью приложения (немного похоже на гигантский "page" driven index.html файл для jQuery mobile), но могу ли я вместо этого использовать cdn, например S3, для моих "статических" файлов, таких как угловые файлы view.html и файлы controller.js? Или даже более традиционная настройка типа веб-хостинга для статических файлов?
Тогда я мог (предположительно?) (Используя модуль $ http) ограничивать поток данных для моего сайта/приложения настройкой типа mysite.com/api? Что-то вроде:
app.config(function($routeProvider){
$routeProvider
.when('/',{
controller: 'customersController',
templateUrl: 'app/views/customers.html'
})
и в контроллере что-то вроде...
$http.get('api/customers');
Но если это так, и я обслуживаю статические файлы таким образом, как узнает routeProvider, где найти контроллер?
Что люди обычно здесь делают? Полностью отделить статические файлы от динамических данных? Или собрать все это вместе? Есть ли правильный способ сделать это? Или я что-то понимаю неправильно?
Предположения:
Мысли:
<script>
, вы можете просто загрузить их в S3. Это не должно давать вам слишком большой проблемы.RouteProvider
и ng-include
, вы сможете получить их из S3.$http
в контроллерах.Надеюсь, что это поможет.