Что лучший способ состоит в том, чтобы надежно опубликовать сборку сообщения сайта?

Вы установили, что холст не имеет большого значения?

gl = someCanvas.getContext("webgl", { premultipliedAlpha: false });

Значение по умолчанию для WebGL равно true. По умолчанию для большинства приложений OpenGL установлено значение false

В дополнение к этому WebGL компонуется с остальной частью страницы. Как минимум, это цвет фона холста или того, что внутри (тело вашего документа).

Чтобы убедиться, что это проблема, попробуйте установить цвет фона вашего холста на фиолетовый или что-то, что будет торчать

<canvas ... style="background-color: #F0F;"></canvas>

или в css

canvas { background-color: #F0F; }

Приложения OpenGL редко компонуются над чем-либо, где приложения WebGL эффективно компонуются ВСЕГДА.

Некоторые решения

  • Отключить альфа Если вам не нужна альфа в вашем пункте назначения, вы может отключить его
    gl = someCanvas.getContext("webgl", { alpha: false });
    
    Теперь альфа будет эффективно 1
  • Установите альфа-1 в конце кадра
    // clear only the alpha channel to 1
    gl.clearColor(1, 1, 1, 1);
    gl.colorMask(false, false, false, true);
    gl.clear(gl.COLOR_BUFFER_BIT);
    
    , не забудьте установить цветовую маску обратно ко всем true, если вы необходимо очистить цветной буфер позже
  • Установить цвет фона фона для черного
    canvas { background-color: #000; }
    

Если возможно, я бы выбрал отключение альфа. Причина, по которой альфа отключена, позволяет браузеру отключить смешение при рисовании холста в браузере. Это может быть увеличение скорости на 10-20% или более в зависимости от графического процессора. Нет никакой гарантии, что любой браузер сделает эту оптимизацию, только это можно сделать, тогда как с другими 2 решениями это невозможно или, по крайней мере, гораздо менее вероятно

6
задан Dane O'Connor 22 August 2008 в 22:35
поделиться

8 ответов

Для некоторых проектов я использую Capistrano для выставления для проживания. Это создается сверху рубина и делает, развертывают сценарий, пишущий супер легкий, и использует ssh.

На других проектах у меня есть крошечное, развертывают приложение, которое использует удар, чтобы сделать экспорт svn во временный каталог и затем rsync это к живому серверу. Можно заставить rsync использовать ssh.

Я значительно предпочитаю метод Capistrano, даже если Ваш проект не находится в рубине/направляющих.

6
ответ дан 8 December 2019 в 18:44
поделиться

Это походит на вид вещи, которая могла быть сделана легко с SFTP. Смотрите на PuTTY (psftp и pscp) или WinSCP для Windows, или rsync и OpenSSH для Unixes.

4
ответ дан 8 December 2019 в 18:44
поделиться

@Neall, я добавил бы a set -e на второй строке, потому что Вы не хотите живой сайт, заменяемый если rsync сбои по любой причине. set -e заставляет сценарий выходить, если какая-либо из его команд перестала работать.

Править: set -e должна быть первая вещь в сценарии, прямо после #!/bin/bash.

1
ответ дан 8 December 2019 в 18:44
поделиться

Сделайте копию своего живого каталога сайта, используйте rsync для обновления той копии с последней версией, затем переименуйте живые и обновленные каталоги так, чтобы обновленная версия была теперь жива.

В ударе:

#!/bin/bash

set -e
cp -R /var/livesite /var/newversion
rsync user@devserver:/var/readytogolive /var/newversion
mv /var/livesite /var/oldlivesite
mv /var/newversion /var/livesite

Viola!

Править: @Ted Percival - Это - хорошая идея. Я даже не знал о "наборе-e". Обновленный сценарий. Править: обновленный снова в предложении Ted's (хотя я думаю, что оно все еще работало бы, если бы так или иначе команда CP перестала работать, и если CP приводит Вас к сбою, вероятно, имеют более серьезные проблемы.)

1
ответ дан 8 December 2019 в 18:44
поделиться

Вы могли всегда писать маленькое клиент-серверное приложение, которое шифрует в источнике, продвигает файлы и затем дешифрует в месте назначения. Это - определенная работа, но вероятно тривиальная сумма. И это scriptable пока Ваши поддержки средства автоматизации, выполняющие что-то в файловой системе (который я думаю, что все делают).

Единственный недостаток - то, что Вы не можете получать значимые сообщения об ошибках при отказе в Вашей среде интеграции без немного большего количества работы с Вашей стороны (хотя в зависимости от Вашей установки, это могло быть столь же просто как отправляющий сообщения об ошибках в stdout).

0
ответ дан 8 December 2019 в 18:44
поделиться

гм, здесь мы используем подготовку "сервер" для тестирования на продуктивной среде (на самом деле, апачский виртуальный хост на рабочем сервере) и слияние araxis (действительно умное линию за линией инструмент сравнения файлов) для синхронизации разработки и подготовки.

однажды его протестированный, просто; замените файлы на производстве webroot :)

/mp

0
ответ дан 8 December 2019 в 18:44
поделиться

Я буду второй рекомендация для Capistrano, хотя при поиске основанного на GUI решения, Вы могли бы попробовать фронтэнд Webistrano. Чистая, находящаяся в ssh, нормальная семантика развертывания и отката и легкие сценарии и расширяемость через рубин.

1
ответ дан 8 December 2019 в 18:44
поделиться

На внештатном задании я сделал, мы настраиваем три отдельных среды.

  • Сервер Dev, который работал, продолжает использование сборок CruiseControl. Любая регистрация инициировала бы сборку. Тестирование QA было сделано здесь.
  • Тестовый сервер, то тестирование приемлемости для пользователя было сделано на.
  • Производство.

Рабочий процесс как сопровождался:

  1. Разработчик регистрируется в изменениях в SourceControl.
  2. CruiseControl создает и развертывает сборку на Dev.
  3. Dev является QA'ed
  4. После передающего QA robocopy сценарий, работал, который развертывает сборку Dev для Тестирования.
  5. Тест является UAT'ed
  6. После Тестовых передач robocopy сценарий, работал, который развертывает Тест на PRD.
0
ответ дан 8 December 2019 в 18:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: