Настройка play framework и dart для разработки и отладки

Я разрабатываю относительно простое веб-приложение, используя игровую среду для сервера и дротик для клиента. Я использую затмение. Разработка и отладка хороши сами по себе, но как заставить их работать вместе?

У Play есть собственный веб-сервер (активатор), который знает, как загружать точки входа для каждой конечной точки, а среда dart знает, как обслуживать ресурсы dart (pub serve) для dartium и (еще не пробовал) обслуживать ресурсы js для другие браузеры. Есть ли способ для активатора запрашивать ресурсы у системы dart/pub по мере необходимости?

Я попытался добавить символическую ссылку из статического ресурса сервера непосредственно в ресурсы dart/html, но, похоже, эти файлы должны быть обработаны pub-сервером, прежде чем их можно будет использовать в браузере.


person Evan Thomas    schedule 11.05.2015    source источник
comment
Я не уверен, что именно означает ваш добавленный абзац, но статические ресурсы не должны обрабатываться pub serve только исходными файлами Dart и файлами HTML, содержащими теги сценариев Dart, и, возможно, файлами CSS, которые могут быть встроенными. Можете ли вы предоставить более подробную информацию о том, чего вы на самом деле пытались достичь?   -  person Günter Zöchbauer    schedule 18.05.2015
comment
В производственной среде ресурсы дротика компилируются в статические ресурсы. Но ресурсы развития дартс не статичны. Если я что-то изменяю в дротике в редакторе, я хочу, чтобы это отражалось в браузере. Кроме того, я хочу иметь возможность отлаживать приложение dart в eclipse, что, как я полагаю, означает запуск dart изначально в dartium.   -  person Evan Thomas    schedule 18.05.2015


Ответы (2)


Я предполагаю, что лучший способ — использовать прокси с правилами для пересылки запросов на ресурсы Dart на pub serve и игровых ресурсов на activator. Это было бы просто создать в Dart, например, используя shelf, shelf_route и shelf_proxy или nginx с несколькими правилами переадресации.

person Günter Zöchbauer    schedule 11.05.2015

Предложение Гюнтера было довольно хорошим. Я установил nginx и использовал следующую конфигурацию

server {
    listen       8080;
    server_name  localhost;

    location / {
        # Dart pub serv
        proxy_pass http://localhost:9100;
    }

    location /api/ {
        # Play 
        proxy_pass http://localhost:9000/api/;
    }
}

Затем я запускаю дартс-сервер как

pub serve --port 9100

Сервер typesafe/play по умолчанию прослушивает 9000.

Я обнаружил, что мне нужно использовать номер порта dart вдали от порта активатора, потому что он, похоже, также прослушивает близлежащие порты.

Эван

person Evan Thomas    schedule 15.05.2015