Как использовать ресурсы угловой сборки внутри статического фляги? - PullRequest
0 голосов
/ 11 января 2019

Я работаю над приложением, в котором используется angular7 в передней части и структура фляги Python в задней части. Я пытаюсь взять угловую сборку, то есть папку dist, и настраиваю ее в колбе в соответствии со структурой колбы.

Я не могу загрузить изображения на этот сервер. где путь к изображениям в dist подобен dist/assets/images.

flask
---app.py
---templates
   ----index.html
---static
   ---- main6gaugsx.js
   ---- runtime7gyg.js
--conf files

Я попытался переместить эти изображения в статическую папку фляги. Но я не могу установить путь к изображениям в main6gaugsx.js, так как это код в комплекте. Также изображения могут увеличиться позже. Я не могу сделать это каждый раз при развертывании.

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Я изменил угловую сборку outputPath, чтобы она указывала на статическую папку.

    "build": {
    "builder": "@angular-devkit/build-angular:browser",
    "options": {
      "outputPath": "my-project/dist/static",// changes
      "index": "src/index.html",
      "main": "src/main.ts",
      "polyfills": "src/polyfills.ts",
      "tsConfig": "src/tsconfig.app.json",
       "assets": [
         "src/assets",
         "src/favicon.ico"
      ],
    },
.
.

    },

перенес статическую папку сборки в служебный файл и обновил путь к static_folder и template_folder в main.py, как показано ниже.

    cp -r angular/my-project/dist/static service/app 

в main.py.

    app = Flask(__name__, static_folder='static', template_folder='static')

    @app.route('/')
    def home():
     return render_template('index.html')
0 голосов
/ 12 января 2019
  1. Не перемещайте файлы вручную, это только усложнит процесс развертывания и станет местом многих проблем в будущем.
  2. Попробуйте установить в качестве выходного каталога сборки AngularJS статическую папку приложения Flask. Обычно это в конфигурации веб-пакета. Это гарантирует, что вы не управляете файлами сборки внешнего интерфейса вручную, а также обеспечивает сохранение относительных путей в файлах JS и CSS.

Но проблема будет index.html, также будет помещена в папку static, а не в папку шаблонов. Чтобы справиться с этим, установите template_folder во время создания Flask app на static/build или там, где index.html находится в папке static.

# assuming, the angular build is in the statis/build directory
app = Flask(__name__, static_folder='static', template_folder='static/build`)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...