Приложение полного стека Angular-Django в рабочем режиме, выдающее ошибки во время выполнения - PullRequest
0 голосов
/ 14 февраля 2019

Я создаю пример приложения полного стека с 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.

Итак, мои вопросы:

  1. Не копируется ли Bootstrap, когда я запускаю ng build --prod?
  2. Есть ли способ узнать, есть ли ошибка компиляции с помощью ng build --prod?Как строгий вариант компиляции?
  3. Есть ли какой-нибудь особый способ запуска Django в производстве, когда передний конец - Angular?Специальный вариант с collectstatic?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...