Значки панели инструментов не отображаются, и я получаю ошибки семейства шрифтов, но все они находятся в своих папках, ничего не изменилось. Вы можете помочь мне решить эту проблему?
ПОЛУЧИТЬ
Я получаю это для всех семейств шрифтов.
Сообщите подробности.
Вы используете обратный прокси?
Вы работаете в режиме разработки или производства?
Минифицированный?
Защищенная копия или ваш settings.json
И т.п.
Он работает в режиме разработки, хотя в службе systemd есть «Environment = NODE_ENV = production», нет обратного прокси, css минимизирован, settings.json почти не затрагивается (изменяются только mysql и admin pw).
Похоже, что etherpad не может загрузить все шрифты, потому что смотрит на
Попробуйте включить minify в false и maxage в 0 в settings.json
Я сделал, ничего не изменилось
На моем ноутбуке, возможно, смогу помочь больше. Самое полезное - получить ваш settings.json (но удалить все пароли). Вы можете это предоставить?
FWIW Я тестировал 1.6. *> 1.8.3 и не испытывал этого, но это может быть связано с тем, что ваш settings.json имеет некоторую устаревшую неразбериху в:!
Если вы не хотите указывать настройки, нужно сделать следующее:
cp settings.json settings.backup.json
cp settings.json.template settings.json
Затем скопируйте хост / пользователя / проход базы данных из settings.backup.json
в settings.json
Перезагрузите и посмотрите, исправлено ли это.
/*
This file must be valid JSON. But comments are allowed
Please edit settings.json, not settings.json.template
To still commit settings without credentials you can
store any credential settings in credentials.json
*/
{
// Name your instance!
"title": "HelpMe-Etherpad",
// favicon default name
// alternatively, set up a fully specified Url to your own favicon
"favicon": "favicon.ico",
//IP and port which etherpad should bind at
"ip": "0.0.0.0",
"port" : 9001,
// Option to hide/show the settings.json in admin page, default option is set to true
"showSettingsInAdminPage" : true,
/*
// Node native SSL support
// this is disabled by default
//
// make sure to have the minimum and correct file access permissions set
// so that the Etherpad server can access them
"ssl" : {
"key" : "/path-to-your/epl-server.key",
"cert" : "/path-to-your/epl-server.crt",
"ca": ["/path-to-your/epl-intermediate-cert1.crt", "/path-to-your/epl-intermediate-cert2.crt"]
},
*/
//The Type of the database. You can choose between dirty, postgres, sqlite and mysql
//You shouldn't use "dirty" for for anything else than testing or development
/*"dbType" : "dirty",
//the database specific settings
"dbSettings" : {
"filename" : "var/dirty.db"
},
An Example of MySQL Configuration*/
"dbType" : "mysql",
"dbSettings" : {
"user" : "etherpad",
"host" : "localhost",
"password": "",
"database": "etherpad",
"charset" : "utf8mb4"
},
"users": {
"admin": {
"password": "",
"is_admin": true
}
},
//the default text of a pad
"defaultPadText" : "Willkommen zum CN-Etherpad!\n\nDieses Dokument wird beim Tippen laufend aktualisiert, sodass jeder immer denselben Text sieht. So kann man nahtlos zusammen an Dokumenten arbeiten.\n",
/* Default Pad behavior, users can override by changing */
"padOptions": {
"noColors": false,
"showControls": true,
"showChat": true,
"showLineNumbers": true,
"useMonospaceFont": false,
"userName": false,
"userColor": false,
"rtl": false,
"alwaysShowChat": false,
"chatAndUsers": false,
"lang": "de-de"
},
/* Should we suppress errors from being visible in the default Pad Text? */
"suppressErrorsInPadText" : false,
/* Users must have a session to access pads. This effectively allows only group pads to be accessed. */
"requireSession" : false,
/* Users may edit pads but not create new ones. Pad creation is only via the API. This applies both to group pads and regular pads. */
"editOnly" : false,
/* Users, who have a valid session, automatically get granted access to password protected pads */
"sessionNoPassword" : false,
/* if true, all css & js will be minified before sending to the client. This will improve the loading performance massivly,
but makes it impossible to debug the javascript/css */
"minify" : false,
/* How long may clients use served javascript code (in seconds)? Without versioning this
may cause problems during deployment. Set to 0 to disable caching */
"maxAge" : 21600, // 60 * 60 * 6 = 6 hours
/* This is the absolute path to the Abiword executable. Setting it to null, disables abiword.
Abiword is needed to advanced import/export features of pads*/
"abiword" : "/usr/local/bin/abiword",
/* This is the absolute path to the soffice executable. Setting it to null, disables LibreOffice exporting.
LibreOffice can be used in lieu of Abiword to export pads */
"soffice" : null,
/* This is the path to the Tidy executable. Setting it to null, disables Tidy.
Tidy is used to improve the quality of exported pads*/
"tidyHtml" : "/usr/bin/tidy",
/* Allow import of file types other than the supported types: txt, doc, docx, rtf, odt, html & htm */
"allowUnknownFileEnds" : true,
/* This setting is used if you require authentication of all users.
Note: /admin always requires authentication. */
"requireAuthentication" : false,
/* Require authorization by a module, or a user with is_admin set, see below. */
"requireAuthorization" : false,
/*when you use NginX or another proxy/ load-balancer set this to true*/
"trustProxy" : false,
/* Privacy: disable IP logging */
"disableIPlogging" : false,
/* Users for basic authentication. is_admin = true gives access to /admin.
If you do not uncomment this, /admin will not be available! */
// restrict socket.io transport methods
"socketTransportProtocols" : ["xhr-polling", "jsonp-polling", "htmlfile"],
// Allow Load Testing tools to hit the Etherpad Instance. Warning this will disable security on the instance.
"loadTest": false,
// Disable indentation on new line when previous line ends with some special chars (':', '[', '(', '{')
/*
"indentationOnNewLine": false,
*/
/* The toolbar buttons configuration.
"toolbar": {
"left": [
["bold", "italic", "underline", "strikethrough"],
["orderedlist", "unorderedlist", "indent", "outdent"],
["undo", "redo"],
["clearauthorship"]
],
"right": [
["importexport", "timeslider", "savedrevision"],
["settings", "embed"],
["showusers"]
],
"timeslider": [
["timeslider_export", "timeslider_returnToPad"]
]
},
*/
/* The log level we are using, can be: DEBUG, INFO, WARN, ERROR */
"loglevel": "INFO",
//Logging configuration. See log4js documentation for further information
// https://github.com/nomiddlename/log4js-node
// You can add as many appenders as you want here:
"logconfig" :
{ "appenders": [
{ "type": "console"
//, "category": "access"// only logs pad access
}
/*
, { "type": "file"
, "filename": "your-log-file-here.log"
, "maxLogSize": 1024
, "backups": 3 // how many log files there're gonna be at max
//, "category": "test" // only log a specific category
}*/
/*
, { "type": "logLevelFilter"
, "level": "warn" // filters out all log messages that have a lower level than "error"
, "appender":
{ Use whatever appender you want here }
}*/
/*
, { "type": "logLevelFilter"
, "level": "error" // filters out all log messages that have a lower level than "error"
, "appender":
{ "type": "smtp"
, "subject": "An error occurred in your EPL instance!"
, "recipients": "[email protected], [email protected]"
, "sendInterval": 300 // 60 * 5 = 5 minutes -- will buffer log messages; set to 0 to send a mail for every message
, "transport": "SMTP", "SMTP": { // see https://github.com/andris9/Nodemailer#possible-transport-methods
"host": "smtp.example.com", "port": 465,
"secureConnection": true,
"auth": {
"user": "[email protected]",
"pass": "bar_foo"
}
}
}
}*/
]
}
}
Ладно, круто, дай мне 2 минуты.
Нет, это не дублировалось, кнопки на панели инструментов для меня существуют ..
Это общедоступный экземпляр, к которому я могу получить доступ? не стесняйтесь, напишите мне URL [email protected]
Глупый вопрос .. Ты
bin/run.sh
Благодаря!
К сожалению, это не публичный случай.
Я заменил settings.json новым шаблоном, а также изменил скин на no-skin. все еще безуспешно ..
И да, я запустил run.sh, перезапустил службу и снял деньги :)
Кстати, это сервис systemd:
[Единица измерения]
Описание = Etherpad
После = syslog.target network.target
[Обслуживание]
Тип = простой
Пользователь = etherpad
Группа = etherpad
Рабочий каталог = / opt / etherpad
Окружающая среда = NODE_ENV = производство
ExecStart = / opt / etherpad / bin / run.sh
Перезагрузка = всегда
[Установить]
WantedBy = multi-user.target
Как вы установили? Вы git clone
или вы скачали выпущенный .zip и распаковали?
URL запроса: https://dev.com:9001/static/font/RobotoMono-Regular.ttf
jose<strong i="7">@server</strong>:~/develop$ locate RobotoMono | grep develop | grep Reg
/home/jose/develop/src/static/font/RobotoMono-Regular.ttf
Мне все хорошо.
Установил через git clone, точнее обновил. Я считаю, что он был установлен несколько лет назад (другим администратором) с помощью zip-распаковки. Я использовал rsync для обновления всего
Ах, интересно, не вставил ли последний админ какие-нибудь хаки? если вы git status
видите ли вы какие-либо измененные файлы?
Что произойдет, если вы git клонируете новое репо, а затем скопируете файл settings.json? Это сработает, но, очевидно, не решит проблему странности.
Я сделаю это сейчас. да это очень странно .. как будто корневая папка для шрифтов не такая как etherpad
Код правильный, кстати. src / - это корневая папка ..
Я думаю, что предыдущий админ что-то взломал, я не могу сказать что, не увидев git diff. Можем ли мы закрыть это сейчас?
предыдущий администратор не использовал git (не был установлен), все еще не работает после чистого клона ..
@skramsa lulwut. Полностью очистить клон и запустить и не работает? :! У меня такое чувство, что с вашей настройкой что-то не так ... В журнале есть ошибки или предупреждения?
Что, если вы сделаете полностью чистый клон и не измените никаких настроек? Значит, он все еще терпит неудачу?
Есть ли шанс, что вы можете временно сделать его общедоступным для отладки?
нет, это в защищенной интрасети .. может ли обновление с 6 до 12 иметь какое-то отношение к этому?
Не уверен .. Я не уверен, что здесь другие шаги отладки ..
Единственное, что у меня есть, это ..
https://github.com/ether/etherpad-lite/blob/develop/src/node/utils/Minify.js#L429
Но вы сказали, что очистили весь кеш и выполнили чистый прогон.
Вы отключили минимизацию, rm -Rf src/node_modules && rm src/package-lock.json
затем запустили bin/run.sh
да? Я имею в виду, что вы сделали чистый клон, так что; \
Какие у вас значения git sha
, npm --version
и nodejs version
пожалуйста?
npm - 6.14.4, а node -v - 12.16.2. глупый вопрос, а что именно ты имеешь в виду под "мой" мерзавец ша?
Я перешел на 1.6.2 и установил minify на false, и внезапно он снова заработал (до этого не работали даже значки старой версии). Это облегчение .. Я постараюсь на следующей неделе сделать еще одну чистую настройку с этими настройками, может быть, на этот раз все сработает: D Большое спасибо за вашу помощь !!
В папке etherpad введите git rev-parse HEAD
Я хочу посмотреть, на каком коммите вы находитесь.
Здравствуйте
У меня точно такая же проблема, только я за прокси.
Я провел тест, сохранив свою установку и клонировав репозиторий. Затем я просто скопировал свой файл конфигурации и перезапустил службу.
У меня все еще та же проблема, несмотря на новую установку.
Но :
С другой стороны, интересная вещь, когда я обращаюсь к сервису без использования прокси и без https, никаких проблем, иконки отображаются правильно !!
Конфигурация прокси-сервера apache взята из документации, с моей стороны ничего экзотического.
Была точно такая же проблема.
Я использую обратный прокси, и экземпляр Etherpad находится в подкаталоге (/ etherpad). Мне удалось исправить это, добавив следующее в мою конфигурацию apache.
<Location /static/font>
ProxyPass http://localhost:9001/static/font
ProxyPassReverse http://localhost:9001/static/font
</Location>
В settings.json ничего не менял.
@skramsa не упомянул обратный прокси, поэтому я не думаю, что это связано? Skramsa, пожалуйста, подтвердите, что в вашей настройке нет обратного прокси.
Была точно такая же проблема.
Я использую обратный прокси, и экземпляр Etherpad находится в подкаталоге (/ etherpad). Мне удалось исправить это, добавив следующее в мою конфигурацию apache.
<Location /static/font> ProxyPass http://localhost:9001/static/font retry=0 timeout=30 ProxyPassReverse http://localhost:9001/static/font </Location>
В settings.json ничего не менял.
Почему применяется правило повтора и тайм-аута?
@skramsa не упомянул обратный прокси, поэтому я не думаю, что это связано? Skramsa, пожалуйста, подтвердите, что в вашей настройке нет обратного прокси.
Да, но @julpec находится за прокси, так что я подумал, что это может быть полезно;)
Была точно такая же проблема.
Я использую обратный прокси, и экземпляр Etherpad находится в подкаталоге (/ etherpad). Мне удалось исправить это, добавив следующее в мою конфигурацию apache.<Location /static/font> ProxyPass http://localhost:9001/static/font retry=0 timeout=30 ProxyPassReverse http://localhost:9001/static/font </Location>
В settings.json ничего не менял.
Почему применяется правило повтора и тайм-аута?
Вы правы, не думаю, что это нужно, просто торопился вчера после обновления;)
@skramsa не упомянул обратный прокси, поэтому я не думаю, что это связано? Skramsa, пожалуйста, подтвердите, что в вашей настройке нет обратного прокси.
Да, но @julpec находится за прокси, так что я подумал, что это может быть полезно;)
Это спасибо
Как напоминание :
С другой стороны, интересная вещь, когда я обращаюсь к сервису без использования прокси и без https, никаких проблем, иконки отображаются правильно !!
В моем случае очевидно, что это связано с прокси.
Кроме того, я нахожусь в ситуации миграции моего экземпляра Etherpad, и я перенес свою базу данных, а затем обновил Etherpad. У меня сейчас в журналах появляется следующее:
[2020-04-29 10:43:29.440] [ERROR] console - table is not configured with charset utf8mb4 -- This may lead to crashes when certain characters are pasted in pads
Не знаю, может ли это вызвать ошибки…
Как напоминание :
С другой стороны, интересная вещь, когда я обращаюсь к сервису без использования прокси и без https, никаких проблем, иконки отображаются правильно !!
В моем случае очевидно, что это связано с прокси.
Кроме того, я нахожусь в ситуации миграции моего экземпляра Etherpad, и я перенес свою базу данных, а затем обновил Etherpad. У меня сейчас в журналах появляется следующее:
[2020-04-29 10:43:29.440] [ERROR] console - table is not configured with charset utf8mb4 -- This may lead to crashes when certain characters are pasted in pads
Не знаю, может ли это вызвать ошибки…
Создайте для этого отдельный выпуск. Это требует решения.
У меня та же проблема.
Я за обратным прокси-сервером (Apache), и я использую (в настоящее время) последний контейнер докеров (вытащил изображение минуту назад):
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
etherpad/etherpad latest 878d71df1b8e 44 hours ago 273MB
Панель инструментов выглядит точно так же, как в исходном отчете. Etherpad проксируется под /pad/
, но шрифты загружаются из /static/
, что приводит к 404 ошибкам.
Я бы предпочел не использовать обходной путь @lucaguindani , потому что /static/
- очень распространенный путь, который также используется другими приложениями.
Хорошо, отсортирую как можно скорее. Должен быть сегодня, может не быть объединен на этой неделе, так что вам, ребята, может понадобиться применить патч.
После недели выпуска мы все пытаемся проводить время с семьей и т. Д.
Я не могу воспроизвести это с моей конфигурацией apache. Может ли кто-нибудь вставить оскорбительную конфигурацию apache?
Протестировал nginx тоже с конфигурацией вики и не может там реплицироваться; /
Это заставляет меня думать, что вы, ребята, испытываете странную неправильную конфигурацию / причуду Apache. Откуда вы все взяли конфигурацию подкаталога apache? Мы не размещаем его на вики-афаике, так что я думаю, может быть, вы, ребята, пошли вразрез? :П
PS Я тестирую против разработки, которая в значительной степени является выпуском atm, а конфигурация nginx:
server {
listen 80;
server_name pad.example.com;
access_log /var/log/nginx/eplite.access.log;
error_log /var/log/nginx/eplite.error.log;
location /pad {
rewrite /pad/(.*) /$1 break;
rewrite ^/pad$ /pad/ permanent;
proxy_pass http://localhost:9001/;
proxy_pass_header Server;
proxy_redirect / /pad/;
proxy_set_header Host $host;
proxy_buffering off;
}
location /pad/socket.io {
rewrite /pad/socket.io/(.*) /socket.io/$1 break;
proxy_pass http://localhost:9001/;
proxy_redirect / /pad/;
proxy_set_header Host $host;
proxy_buffering off;
proxy_set_header X-Real-IP $remote_addr; # http://wiki.nginx.org/HttpProxyModule
proxy_set_header X-Forwarded-For $remote_addr; # EP logs to show the actual remote IP
proxy_set_header X-Forwarded-Proto $scheme; # for EP to set secure cookie flag when https is used
proxy_set_header Host $host; # pass the host header
proxy_http_version 1.1; # recommended with keepalive connections
# WebSocket proxying - from http://nginx.org/en/docs/http/websocket.html
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
location /static {
rewrite /static/(.*) /static/$1 break;
proxy_pass http://localhost:9001/;
proxy_set_header Host $host;
proxy_buffering off;
}
}
# we're in the http context here
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
Я заметил, что тесты / frontend / index.html не работают, что кажется странным
Я также попробовал /pad/foo/p/blah
чтобы убедиться, что на стороне Etherpad нет ошибок, и все выглядит нормально ...
Я не могу воспроизвести это с моей конфигурацией apache. Может ли кто-нибудь вставить оскорбительную конфигурацию apache?
Вот мой:
<Location /pad/>
Order allow,deny
Allow from all
Options All +MultiViews -ExecCGI
AuthType Basic
AuthName "authentification"
AuthBasicProvider ldap
AuthLDAPURL "ldap://127.0.0.1:389/ou=****,dc=****,dc=****,dc=org"
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
require ldap-group cn=****,ou=***,dc=*****,dc=****,dc=org
ProxyPass http://localhost:9002/
ProxyPassReverse http://localhost:9002/
RewriteEngine On
RewriteCond %{LA-U:REMOTE_USER,NS} (.+)
RewriteRule . - [E=RU:%1]
RequestHeader add X-Forwarded-User %{RU}e
</Location>
Огромное спасибо, дай мне час попробовать сегодня вечером.
Это заставляет меня думать, что вы, ребята, испытываете странную неправильную конфигурацию / причуду Apache. Откуда вы все взяли конфигурацию подкаталога apache? Мы не размещаем его на вики-афаике, так что я думаю, может быть, вы, ребята, пошли вразрез? :П
Это заставляет меня думать, что вы, ребята, испытываете странную неправильную конфигурацию / причуду Apache. Откуда вы все взяли конфигурацию подкаталога apache? Мы не размещаем его на вики-афаике, так что я думаю, может быть, вы, ребята, пошли вразрез? :П
Я посмотрел туда, и примеры не охватывают размещение Etherpad в подкаталоге для Apache ...
Использование немного измененной версии вашего фрагмента
<VirtualHost *:81>
<Location /pad/>
Order allow,deny
Allow from all
Options All +MultiViews -ExecCGI
ProxyPass http://localhost:9001/
ProxyPassReverse http://localhost:9001/
RewriteEngine On
RewriteCond %{LA-U:REMOTE_USER,NS} (.+)
RewriteRule . - [E=RU:%1]
</Location>
</VirtualHost>
jose<strong i="5">@server</strong>:~/develop$ apache2 -v
Server version: Apache/2.4.29 (Ubuntu)
Server built: 2020-03-13T12:26:16
Я посмотрел туда, и примеры не охватывают размещение Etherpad в подкаталоге для Apache ...
это не имеет смысла. Вы можете поместить все, что хотите, в тег местоположения. Но я попробую прямо сейчас с вашей конфигурацией и без "подкаталога".
Кстати, спасибо за расследование
это не имеет смысла. Вы можете поместить все, что хотите, в тег местоположения. Но я попробую прямо сейчас с вашей конфигурацией и без "подкаталога".
это не имеет смысла ... в моем мозгу. Но в реальном мире проблема именно в этом!
Хороший отзыв: +1:
Однако я не понимаю, почему раньше все так хорошо работало, ведь он годами работал за обратным прокси с этой конфигурацией.
Мне действительно нужен подкаталог, поскольку у меня есть разные службы, работающие за «единым входом» apache.
Можно ли использовать в качестве местоположения что-то другое, кроме "/"?
Спасибо за работу над этой проблемой
Скопируйте / вставьте мою конфигурацию сверху, я использую другое место ...
Не вижу разницы со своим, кроме настроек аутентификации.
Я попробую прямо сейчас
Скопируйте / вставьте мою конфигурацию сверху, я использую другое место ...
все та же проблема: нет отображения иконок
Версия апача?
Версия сервера: Apache / 2.4.38 (Debian)
Сервер построен: 2019-10-15T19: 53: 42
Я исследовал с помощью инспектора элементов, и вот что он дает мне в качестве URL-адреса для шрифтов:
Request URL: https://example.org/static/font/RobotoMono-Regular.ttf
Должен быть:
Request URL: https://example.org/pad/static/font/RobotoMono-Regular.ttf
Я не могу понять, почему у меня нет подкаталога "pad".
Итак, я начал с нуля на новом хосте.
docker run --name etherpad -d \
-e NODE_ENV=production -p 9001:9001 \
--mount type=bind,src=/etc/localtime,dst=/etc/localtime \
--restart=unless-stopped \
etherpad/etherpad
В исходной комплектации ничего не изменилось.
Конфигурация Apache:
<VirtualHost _default_:443>
ServerName host
<Proxy *>
Require all granted
</Proxy>
ProxyRequests Off
ProxyPreserveHost On
ProxyPass /pad/ http://localhost:9001/
ProxyPassReverse /pad/ http://localhost:9001/
SSLCertificateFile /etc/apache2/ssl/host.example.com_cert_with_chain.pem
SSLCertificateKeyFile /etc/apache2/ssl/host.example.com_sec_key.pem
SSLCertificateChainFile /etc/apache2/ssl/chain.pem
</VirtualHost>
Версия Apache - 2.4.29.
Очистил кеш браузера, и результат:
Странно. Я попробую использовать образ докера локально, чтобы посмотреть, изменится ли это.
@JohnMcLear, это действительно невероятно. Я пробовал использовать ту же конфигурацию, что и вы, на порту 81, в отдельном виртуальном хосте и т. Д., И проблема все еще возникает.
Я каждый раз очищал кеш.
Вот мои версии программного обеспечения:
node: v10.20.1
npm: 6.14.4
apache2: Apache/2.4.38 (Debian)
etherpad: 1.8.3 (6210114)
У меня точно такая же проблема. Значки отсутствуют при запуске через прокси (nginx), а для minify установлено значение true. Как только я установил для minify значение false, запустил его с помощью clearRun.sh и очистил кеш браузера, значки заработали. В более старой версии, которую мы использовали довольно долго, она работала с minify: true и этой конфигурацией Nginx:
server {
listen 80;
listen 443 ssl;
include snippets/mortis2-ssl.conf;
server_name mortis2;
location /pad/
{
#proxy_pass http://localhost:9001/;
proxy_set_header Host $host;
proxy_buffering off;
}
}
Я выяснил, что когда я использую конфигурацию nginx от @JohnMcLear и использую перезапись, она будет работать. Я думаю, эта проблема возникает только тогда, когда мы используем другое место (например, / pad).
Конфигурация Nginx, которая работает:
server {
listen 80;
listen 443 ssl;
include snippets/mortis2-ssl.conf;
server_name mortis2;
location /pad/
{
rewrite /pad/(.*) /$1 break;
rewrite ^/pad$ /pad/ permanent;
proxy_pass http://localhost:9001/;
proxy_pass_header Server;
proxy_set_header Host $host;
proxy_buffering off;
}
location /pad/socket.io {
rewrite /pad/socket.io/(.*) /socket.io/$1 break;
proxy_pass http://localhost:9001/;
proxy_redirect / /pad/;
proxy_set_header Host $host;
proxy_buffering off;
proxy_set_header X-Real-IP $remote_addr; # http://wiki.nginx.org/HttpProxyModule
proxy_set_header X-Forwarded-For $remote_addr; # EP logs to show the actual remote IP
proxy_set_header X-Forwarded-Proto $scheme; # for EP to set secure cookie flag when https is used
proxy_set_header Host $host; # pass the host header
proxy_http_version 1.1; # recommended with keepalive connections
# WebSocket proxying - from http://nginx.org/en/docs/http/websocket.html
proxy_set_header Upgrade $http_upgrade;
#proxy_set_header Connection $connection_upgrade;
}
location /static {
rewrite /static/(.*) /static/$1 break;
proxy_pass http://localhost:9001/;
proxy_set_header Host $host;
proxy_buffering off;
}
}
Op сказал, что minify true / false не меняет результат. Оп также не упомянул ни одного прокси-сервера rev .... Я проверю с minify true, когда вернусь домой.
Подтверждено, что это вызвано minify.
https://github.com/ether/etherpad-lite/issues/3956#issuecomment -620476150 утверждал, что minify false
не имело значения, и я должен был проверить себя, так ли это ...
* фейспалм.
Исправлю как можно скорее.
FWIW Nginx также страдает от этого сбоя, и сбой присутствует на всех страницах (блокнот, индекс, таймлайдер и т. Д.).
Проблема в нашей реализации clean-css
. Css 3-4 удалили параметр relativeTo
и это удаление вызвало эту ошибку. Я переключился на rebase
и rebaseTo
в моем примере
https://github.com/JohnMcLear/etherpad-lite/commit/e684a3ba4129d1bae54e7b65a316a7d690217241 и является полуисправлением, а https://github.com/JohnMcLear/etherpad-lite/commit/a8c660822eb513e Появятся значки, но шрифт неправильный для некоторых внутренних элементов панели и, возможно, других элементов.
Есть предложения @jakubpawlowicz @seballot ?
@JohnMcLear один из способов заставить его работать на вас может заключаться в произвольных преобразованиях, см. Https://github.com/jakubpawlowicz/clean-css#how -to-apply-random-transformations-to-css-properties
Другая идея - передать параметры ввода в clean-css через хеш, см. Https://github.com/jakubpawlowicz/clean-css/blob/master/test/module-test.js#L620 , например
new CleanCSS().minify({"path/to/stylesheet/a.css": { styles: "/* source of a.css goes here */" }})
и используйте опцию rebaseTo
, но без дальнейшего понимания я не могу сказать, сработает это или нет.
Удачи!
Закрыто ? действительно ?
ОП закрыт ... Его не следует закрывать. OP FWIW, вы можете нажать «Отписаться» или «Отписаться» или что-то еще, если вы не хотите шума.
Это все еще не решено, если у EOW нет патча, я попытаюсь исправить.
Я действительно хотел бы увидеть патч сообщества для этого, хотя, если кто-нибудь найдет время.
@JohnMcLear Я действительно хотел бы иметь возможность помочь и уделить этому время, но у меня нет навыков разработчика и тем более в nodejs. Я надеюсь, что другие смогут это сделать. Могу только поддержать вас своими мыслями ...
Хотя я ценю это, ваши мысли не меняют подгузники;)
удар @seballot
Привет, у меня нет особого представления об этом, извините ... Есть ли способ воспроизвести его локально?
develop
minify
в true
server {
listen 80;
server_name pad.example.com;
access_log /var/log/nginx/eplite.access.log;
error_log /var/log/nginx/eplite.error.log;
location /pad/foo {
rewrite /pad/foo/(.*) /$1 break;
rewrite ^/pad/foo$ /pad/foo permanent;
proxy_pass http://localhost:9001/;
proxy_pass_header Server;
proxy_redirect / /pad/foo;
proxy_set_header Host $host;
proxy_buffering off;
}
location /pad/foo/socket.io {
rewrite /pad/foo/socket.io/(.*) /socket.io/$1 break;
proxy_pass http://localhost:9001/;
proxy_redirect / /pad/foo/;
proxy_set_header Host $host;
proxy_buffering off;
proxy_set_header X-Real-IP $remote_addr; # http://wiki.nginx.org/HttpProxyModule
proxy_set_header X-Forwarded-For $remote_addr; # EP logs to show the actual remote IP
proxy_set_header X-Forwarded-Proto $scheme; # for EP to set secure cookie flag when https is used
proxy_set_header Host $host; # pass the host header
proxy_http_version 1.1; # recommended with keepalive connections
# WebSocket proxying - from http://nginx.org/en/docs/http/websocket.html
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
location /static {
rewrite /static/(.*) /static/$1 break;
proxy_pass http://localhost:9001/;
proxy_set_header Host $host;
proxy_buffering off;
}
}
# we're in the http context here
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
cleanCSS
переписывает его (правильно) на ../../../
- я так понимаю это потому, что и блокнот, и редактор используют один и тот же @ font.css, и у них обоих? разные basePaths? тогда один работает, а другой нет после минификации. Я не могу придумать элегантного решения, но я думаю, что вы сможете?@seballot приятель по прогрессу?
Нет, извините, я не могу найти решение ...
Я тоже, cleanCSS творит некую магию, которую я просто не понимаю (я не парень CSS), и ни один из моих экземпляров не запускается в подкаталогах, поэтому мне тоже не интересно изучать
Я не хочу, но мне может потребоваться заменить cleanCSS на csso, потому что я могу заставить csso работать, но я думаю, что в конечном итоге я не решаю проблему должным образом, и csso далеко не так эффективен, как cleanCSS для нашего варианта использования .
Я наткнулся на разработчика cleanCSS, чтобы посмотреть, сможем ли мы вместе исправить это :)
отлично ! если он хорошо работает с csso, почему бы не пойти с ним?
csso минимизирует, но не уменьшает количество загрузок страницы. Также я предпочитаю cleanCSS в качестве проекта / документации и т. Д. И не против бросить некоторые ресурсы на хороший проект, это означает, что я могу сосредоточиться на конкретных проектах Ether
Я столкнулся с той же проблемой, что и в этой теме.
Может ли кто-нибудь посоветовать мне, как я могу решить эту проблему. В файле settings.json нет серьезных изменений.
Обходной путь - установить minify в false в settings.json
Я попробую посмотреть сегодня вечером.
Мне удалось воспроизвести проблему, используя конфигурацию nginx, предоставленную Джоном в https://github.com/ether/etherpad-lite/issues/3956#issuecomment -625163151 в этой же проблеме.
Думаю, проблема есть как в опубликованной конфигурации Nginx, так и в коде Etherpad.
Подробнее позже.
Я просто потратил 2 секунды, глядя на код nginx, и у него не должно быть конфигурации для /static
как это было в копии / вставке, которую я сделал, но корень проблемы глубоко внутри cleanCSS ...
У нас здесь разные проблемы.
в тестовом файле конфигурации Nginx было неправильное перенаправление для /static
. Отсюда следует удалить весь раздел location /static
. Я думаю, вспоминая бурю электронных писем, полученную в эти дни, пользователь жаловался - действительно, - что /static
столкнется с множеством других веб-приложений . Вероятно, его ввел в заблуждение пример, подобный этому;
Это нужно исправить, просматривая документацию (вики? Где-то еще в Интернете?) И улучшая качество примеров .
4177b3f9434e переместил объявления font-face
из src/static/css/pad.css
в два импортированных файла ( src/static/css/pad/fonts.css
и src/static/css/pad/toolbar.css
) в другом каталоге и URL-адреса в src
относительно пути к таблице стилей ;
Вдобавок ко всему, после слияния 95fd5ce2a45e для грядущей 1.8.4 у нас будет проблема устаревания кеша, которую также необходимо решить.
Я делаю тесты и готовлю PR.
Открыт # 4002, чтобы исправить эту проблему. Большое спасибо @JohnMcLear за предварительную работу.
@skramsa , @julpec , @lucaguindani , @ashishhari (и, очевидно, Джон): может ли кто-нибудь из вас проверить этот PR, чтобы увидеть, работает ли он для них? Если возможно, я хотел бы получить независимую проверку.
Также обратите внимание, что конфигурация обратного прокси не требует специального правила для «/ static».
Спасибо за подтверждение. Установка minify на false не решила
проблема для меня.
Я использую это при установке jitsi на экземпляре AWS EC2, и там
это сервер nginx, который используется для размещения jitsi, а также для запуска узла
сервер для службы etherpad на том же компьютере через порт 9001.
Означает ли это, что мне может потребоваться настроить другие параметры nginx? (Я не
правильно понимать обратный прокси, но может ли это быть так?) Или я
просто нужно подождать, пока исправление будет доступно.
14 мая 2020 г. в 6:07 muxator [email protected] написал:
У нас здесь разные проблемы.
1.
в тестовом файле конфигурации Nginx было неправильное перенаправление для / static. В
весь раздел location / static должен быть удален отсюда
https://github.com/ether/etherpad-lite/issues/3956#issuecomment-625163151 .
В электронной буре получила в эти дни, я думаю , помнить , что
к этому;Это должно быть исправлено в документации (вики?
Кого-нибудь еще в Интернете?) И улучшения качествапримеры .
2.4177b3f
https://github.com/ether/etherpad-lite/commit/4177b3f9434e8516f8fe4f8e02b2a75ce5d64173
переместил объявления font-face из src / static / css / pad.css на два
импортированные файлы (src / static / css / pad / fonts.css и
src / static / css / pad / toolbar.css) в другом каталоге, а URL-адреса в
src относятся к пути к таблице стилей
https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/src ;
3.Кроме того, после слияния 95fd5ce
https://github.com/ether/etherpad-lite/commit/95fd5ce2a45e31980ad8c2562e3fe6f77c52d4ff
в грядущей версии 1.8.4 у нас будет проблема устаревания кеша
это также необходимо решить.Я делаю тесты и готовлю PR.
-
Вы получили это, потому что оставили комментарий.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ether/etherpad-lite/issues/3956#issuecomment-628317976 ,
или отписаться
https://github.com/notifications/unsubscribe-auth/AH7VXAS65ZUAR33CPKSI6OLRRM4KZANCNFSM4MSSRTRQ
.
@skramsa , @julpec , @lucaguindani , @ashishhari (и, очевидно, Джон): может ли кто-нибудь из вас проверить этот PR, чтобы увидеть, работает ли он для них? Если возможно, я хотел бы получить независимую проверку.
Хорошо, чтобы я протестировал. У меня нет специальной конфигурации для static
.
Спасибо за подтверждение. Установка minify на false не решила для меня проблему.
Но у меня это работает. Под apache я переключился на false и все стало нормально работать.
Я могу это проверить.
14 мая 2020 г. в 13:30 julpec [email protected] написал:
@skramsa https://github.com/skramsa , @julpec https://github.com/julpec ,
@lucaguindani https://github.com/lucaguindani , @ashishhari
https://github.com/ashishhari (и Джон, очевидно): кто-то из вас
в состоянии проверить этот PR, чтобы увидеть, работает ли он для них? я мог бы
как независимая проверка, если возможно.Хорошо, чтобы я протестировал. Специальной конфигурации для статики у меня нет.
Спасибо за подтверждение. Установка minify на false не решила
проблема для меня.Но у меня это работает. Под apache перешел на false и все
начал работать нормально.-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ether/etherpad-lite/issues/3956#issuecomment-628464590 ,
или отписаться
https://github.com/notifications/unsubscribe-auth/AH7VXAXKTJKZCAZVRXZIJX3RROQLPANCNFSM4MSSRTRQ
.
Также подтверждение -> установка minify на false корректно работала в моей системе.
(вероятно, в прошлый раз я не перезапускал службу правильно).
14 мая 2020 г. в 13:30 julpec [email protected] написал:
@skramsa https://github.com/skramsa , @julpec https://github.com/julpec ,
@lucaguindani https://github.com/lucaguindani , @ashishhari
https://github.com/ashishhari (и Джон, очевидно): кто-то из вас
в состоянии проверить этот PR, чтобы увидеть, работает ли он для них? я мог бы
как независимая проверка, если возможно.Хорошо, чтобы я протестировал. Специальной конфигурации для статики у меня нет.
Спасибо за подтверждение. Установка minify на false не решила
проблема для меня.Но у меня это работает. Под apache перешел на false и все
начал работать нормально.-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ether/etherpad-lite/issues/3956#issuecomment-628464590 ,
или отписаться
https://github.com/notifications/unsubscribe-auth/AH7VXAXKTJKZCAZVRXZIJX3RROQLPANCNFSM4MSSRTRQ
.
Но у меня это работает. Под apache я переключился на false и все стало нормально работать.
Также подтверждение -> установка minify на false корректно работала в моей системе.
@julpec , @ashishhari : установка обходной путь .
Теперь есть надежда увидеть, исправит ли # 4002 ошибку при minify = true.
Процедура будет следующей, делайте это, только если все шаги вам понятны:
Начните копировать ошибку:
minify
= true
в settings.json
Попробуйте исправить:
minify
= true
в settings.json
Я бы хотел, но не знаю, как применять PR :(
Спасибо @muxator , протестирую в течение часа.
Ого, я бы никогда не придумал такое исправление! Это помешательство.
git remote add mux https://github.com/muxator/etherpad-lite/
git fetch mux
git checkout mux/fix/fonts-behind-reverse-proxy
Для тех, кто тоже хочет протестировать ..
после тестирования не забудьте git checkout develop
иначе вы попадете в устаревшую ветку muxs
спасибо протестирую сегодня днем
Хм, я думаю, что что-то не очень производительное @muxator .. Я вижу ~ 54 запроса против ~ 49 (на текущем develop
) - Обратите внимание, что у меня есть плагины, дающие дополнительные запросы. Таким образом, этот PR будет регрессом производительности загрузки страницы, чтобы удовлетворить недокументированный / неподдерживаемый вариант использования, который, IMHO, неприемлем.
Обратите внимание на несколько запросов к одному и тому же файлу ... :( Это по умолчанию, но несколько запросов для одного и того же файла - это не то решение, которое мы ищем.
Я думаю, что множественный запрос исходит из другого iframe. И главная страница, и редактор iframe нуждаются в шрифте, всегда так было, нет?
afaik cleanCSS был использован для решения этой проблемы @seballot
это всегда было так нет?
Да, так было всегда.
Я думаю, cleanCss был больше, чтобы избежать загрузки каждого частичного css (pad / popups.css, pad / editbar.css, pad / chat.css ...), а вместо этого загружать только один pad.css
Но при использовании iframe браузер обязан дважды запрашивать каждый файловый ресурс с iframe. Но второй вызов должен использовать локальный кеш («загружается из кеша»).
Я применил запрос на перенос, и он работает без проблем (с apache)
Спасибо @julpec.
Этим вечером я попытаюсь рассмотреть количество запросов, поднятых @JohnMcLear . Если ничего не происходит, сливаю PR.
Потрясающий мультиплексор TNX
Есть ли способ загрузить файлы HAR где-нибудь в Github? Я протестировал # 4002 и готов поделиться записями, но не знаю, куда их загрузить.
Общие элементы:
Переменные:
Это четыре двоичные переменные -> 2 ^ 4 = 16 возможностей .
На это ушло много времени!
Вот более подходящие случаи:
| Описание | текущая разработка (4816785aef45) | PR # 4002 |
| ---- | ---- | ---- |
| Firefox, уменьшенный, первая загрузка | 34 запроса
1,61 МБ
Передано 1,61 МБ | 36 запросов
1,61 МБ
1,53 МБ передано |
| Firefox, минимизированный, горячий кеш | 29 запросов
1,12 МБ
216 КБ передано | 31 запрос
1,18 МБ
216 КБ передано |
| Хром, уменьшен, первая загрузка | 44 запроса
2,0 МБ
1,5 МБ передано | 109 richieste
3,0 МБ
1,1 МБ передано |
| Хром, минифицированный, горячий кеш | 45 запросов
2,2 МБ
5,7 КБ передано | 129 запросов
4,7 МБ
4,7 КБ передано |
Итог:
Это тоже были мои выводы. Я также потратил время на исследование инструментов профилирования производительности скорости загрузки страниц (помимо инструментов разработчика) и решил, что если инструменты разработчика не дают мне значительного отклонения от среднего значения, то результаты были достаточно подходящими для нашего приложения.
Уменьшение общего размера передачи - это, безусловно, хорошо, но накладные расходы на HTTP-запросы могут быть дорогими из-за задержки. Мы можем объединить это, но помните, что, когда мы переписываем интерфейс (что кажется неизбежным из-за всего встроенного JS, который в конечном итоге необходимо будет переместить), то это область, которую мы должны стремиться улучшить.
Все сказано, Etherpad великолепен по сравнению с большинством других в области htis, за исключением документов Google, которые являются золотым стандартом для абсолютно шокирующе быстрого «времени для редактирования», которое в этом мире является королем, а не «загрузкой конца страницы».
Итак, TLDR; Объедините @muxator - этот поток существует как ресурс для тех, кто хочет оптимизировать экземпляры Etherpad, а НЕ во вложенных папках.
отличная работа !
+1 tnx!
: +1:
Самый полезный комментарий
Была точно такая же проблема.
Я использую обратный прокси, и экземпляр Etherpad находится в подкаталоге (/ etherpad). Мне удалось исправить это, добавив следующее в мою конфигурацию apache.
В settings.json ничего не менял.