#python #django #angular #frontend
#python #джанго #угловатый #интерфейс
Вопрос:
У меня есть структура приложения, подобная этой:
├── project
| |── templates
│ │ └── index.html
│ ├── __init__.py
│ ├── models.py
│ ├── urls.py
│ ├── serializers.py
│ ├── views.py
├── static
| ├── app
| │ ├── app.component.spec.ts
| │ ├── app.component.ts
| │ ├── app.route.ts
│ │ ├── component1.component.ts
| │ ├── component2.component.ts
│ │ └── main.ts
| ├── system.config.json
│ ├── tsconfig.json
│ └── typings.json
├── db.sqlite3
├── LICENSE
├── manage.py
и я пытаюсь загрузить файлы angular2 в свой шаблон django index.html
, поэтому файл выглядит следующим образом:
{% load static from staticfiles %}
<!DOCTYPE html>
<html>
<head>
<base href=/ >
<title>Hello! </title>
<meta charset=UTF-8>
<meta name=viewport content="width=device-width,initial-scale=1">
<script src="https://unpkg.com/core-js/client/shim.min.js"></script>
<script src="https://unpkg.com/zone.js@0.6.25?main=browser"></script>
<script src="https://unpkg.com/reflect-metadata@0.1.3"></script>
<script src="https://unpkg.com/systemjs@0.19.27/dist/system.src.js"></script>
<script>
System.import('{%static '/app/main' %}').catch(function(err){ console.error(err); });
</script>
<link href="{%static '/css/stylesheet.css' %}">
<link href="{%static '/css/bootstrap.min.css' %}">
</head>
<body>
<img src="{%static '/assets/logo.png' %}"></img>
<as-my-app>Loading...</as-my-app>
</body>
</html>
Моя проблема в том, что все статические файлы загружаются нормально, но мой браузер постоянно показывает ошибку при загрузке /static/app/main
, сообщая, что она не найдена. Почему Django не может найти его, если он находит другие статические файлы?
Комментарии:
1. Вы пытались запустить
tsc
command (илиtsc main.ts
) для компиляции ваших ts-файлов?2. ДА. У меня есть в том же каталоге все
.js
,.js.map
и.ts
файлы3. Взгляните на приведенный ниже ответ.
Ответ №1:
У вас есть вложенные одинарные кавычки, а имя вашего файла main.js
— нет main
, вам также нужно удалить первые /
. Дайте мне знать, если следующая строка кода решит вашу проблему:
System.import("{% static 'app/main.js' %}")
Комментарии:
1. теперь это дает мне
Error loading http://127.0.0.1:8000/@angular/platform-browser-dynamic as "@angular/platform-browser-dynamic" from http://127.0.0.1:8000/static/app/main.js
2. Вы установили пакет?
npm install @angular/platform-browser-dynamic
3. В итоге я добавил
.js
файлы в комплекте с webpack.