Я создаю пример приложения полного стека с Angular 6 на передней части и Django 2.02 на внутренней стороне.Весь код здесь: https://github.com/shivkiyer/django-angular
Я получил эту работу в режиме разработки, выполнив «ng serve» для запуска моего сервера Angular Dev и «python manage.py runserver --settings = django_angular.settings.development"на моем Django.Я получаю доступ к серверу Angular на localhost: 4200, который выполняет вызовы API для localhost: 8080
Когда я выполняю «ng build --output-hashing none» на терминале Angular и продолжаю работу с сервером разработки Django,все хорошо, и я могу получить доступ к приложению полностью с моего локального хоста: 8080.
Когда я делаю "ng build --prod --output-hashing none" на терминале Angular и запускаю сервер разработки Django, яя не получаю никаких ошибок компиляции при сборке ng, но я получаю ошибки во время выполнения.Начнем с того, что мой стиль Bootstrap не отображается.И я получаю ошибки в консоли:
GET http://localhost:8080/static/styles.js net::ERR_ABORTED
GET http://localhost:8080/static/vendor.js net::ERR_ABORTED
Когда я попадаю в производственный режим Django.Я установил DEBUG = False и добавил IP-адрес моего локального компьютера вместе с 127.0.0.1 и localhost в ALLOWED_HOSTS.Я сделал "python manage.py collecstatic".Когда я запускаю сервер с "python manage.py runserver --settings = django_angular.settings.production", я вообще не получаю страницу.Я получаю эти ошибки:
Uncaught SyntaxError: Unexpected token < runtime.js:2
Uncaught SyntaxError: Unexpected token < polyfills.js:2
Uncaught SyntaxError: Unexpected token < styles.js:2
Uncaught SyntaxError: Unexpected token < vendor.js:2
Uncaught SyntaxError: Unexpected token < main.js:2
Когда я проверяю любой из них в Google Chrome, я получаю страницу HTML:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Frontend</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="/static/favicon.ico">
</head>
<body>
<app-root></app-root>
<script type="text/javascript" src="/static/runtime.js"></script>
<script type="text/javascript" src="/static/polyfills.js"></script>
<script type="text/javascript" src="/static/styles.js"></script>
<script type="text/javascript" src="/static/vendor.js"></script>
<script type="text/javascript" src="/static/main.js"></script>
</body>
</html>
Но в статической папке на моем компьютере, Я вижу уменьшенный файл JS.
Итак, мои вопросы:
- Не копируется ли Bootstrap, когда я запускаю ng build --prod?
- Есть ли способ узнать, есть ли ошибка компиляции с помощью ng build --prod?Как строгий вариант компиляции?
- Есть ли какой-нибудь особый способ запуска Django в производстве, когда передний конец - Angular?Специальный вариант с collectstatic?