Запустите Dart WebApp на сервере Apache

Я хочу сервировать приложение Dart на сервере Apache. Я добавил строку

application/dart dart

в файл mime.type в конфигурации Apache. Все еще я получаю ошибку

Resource interpreted as Script but transferred with MIME type text/plain:    "http://localhost/~d022051/mastermind/web/mm-game.dart".

Другая проблема - ссылка на каталог пакетов. Я не хочу иметь символические ссылки в каталоге документов сервера. Есть ли умный способ скопировать необходимые пакеты в правильной версии?

2 ответа

Решение

Это сообщение не имеет ничего общего с Apache.

Некоторое время я работал с Apache, но, насколько я знаю, вам не нужны особые настройки для обслуживания клиентского приложения Dart с использованием Apache. Они похожи на любые другие статические файлы HTML, CSS, JavaScript или изображения.

Вы получаете это сообщение, потому что страница входа (index.html) содержит тег сценария для сценария Dart. После запуска pub build в выводе сборки нет сценариев Dart (пока) (это изменится, когда Chrome будет поддерживать Dart и pub build также генерирует дротик).

Когда браузер находит этот (в настоящее время избыточный) тег сценария Dart, он выдает этот вывод. Если вы хотите избавиться от этого сообщения, просто удалите тег script со страницы HTML в вашем your_app_package/build/web/index.html файл.

РЕДАКТИРОВАТЬ

transformers:
- $dart2js:
    'minify': true
    commandLineOptions: ['--output-type=dart']

или же

    commandLineOptions: ['--output-type=dart', '--categories=Server']

Я не проверял, имеет ли этот аргумент категории эффект в dart2dart тоже.

РЕДАКТИРОВАТЬ КОНЕЦ

EDIT2

Также есть тип выхода dart-multi который создает один выходной файл для каждой входной библиотеки. См. https://code.google.com/p/dart/issues/detail?id=21616 для получения дополнительной информации.

EDIT2 END

Добавьте следующие строки в файл pubspec.yaml вашего пакета (спасибо Гюнтеру, который указал на это):

transformers:
- $dart2js:
    'minify': true
    commandLineOptions: ['--output-type=dart']

Затем запустите сборку pub с параметром --mode=debug.

Это приводит к "запускаемому" приложению Dart, содержащему источники Dart и необходимые пакеты. Каталог сборки может быть скопирован в место, видимое для вашего веб-сервера. При загрузке соответствующего URL в браузере Dartium запускается приложение.

Другие вопросы по тегам