Etherpad-lite: لا تظهر رموز شريط الأدوات بعد التحديث (1.6.2 -> 1.8.3) عند التعريض في مصدر فرعي عبر وكيل عكسي وتصغير = صحيح

تم إنشاؤها على ٢٨ أبريل ٢٠٢٠  ·  110تعليقات  ·  مصدر: ether/etherpad-lite

image

لا تظهر أيقونات شريط الأدوات وأتلقى أخطاء في عائلة الخطوط المفقودة ، لكنهم جميعًا في مجلداتهم ، ولم يتغير شيء. هل يمكنك مساعدتي في حل هذه المشكلة؟

احصل على/static/font/Roboto-Regular.ttf net :: ERR_ABORTED 404 (غير موجود)

أحصل على هذا لجميع عائلات الخطوط.

Bug Special case Bug UI express server

التعليق الأكثر فائدة

واجهت نفس المشكلة بالضبط.

أستخدم وكيلًا عكسيًا ويكون مثيل Etherpad في دليل فرعي (/ etherpad). تمكنت من تصحيح الأمر بإضافة ما يلي إلى تكوين Apache.

<Location /static/font>
    ProxyPass http://localhost:9001/static/font
    ProxyPassReverse http://localhost:9001/static/font
</Location>

لم أغير أي شيء في settings.json.

ال 110 كومينتر

يرجى تقديم تفاصيل.

هل تعمل خلف الوكيل العكسي؟
هل تعمل في وضع التطوير أو الإنتاج.
مصغر؟
نسخة مؤمنة أو إعداداتك. json
إلخ.

https://mclear.co.uk/2015/01/15/how-to-write-a-bug-report/

إنه يعمل في وضع التطوير ، على الرغم من أن خدمة systemd بها "بيئة = NODE_ENV = إنتاج" ، لا يوجد وكيل عكسي ، يتم تصغير ملف css ، وبالكاد يتم لمس الإعدادات. json (تم تغيير mysql و admin pw فقط).

يبدو أن etherpad لا يمكنها تحميل جميع الخطوط لأنها تبدو في/static/font/*.ttf بدلاً من/ etherpad / src / static / font /

حاول تحويل تصغير إلى خطأ والحد الأقصى إلى 0 في settings.json

فعلت ، لم يتغير شيء

في جهاز الكمبيوتر المحمول الآن ، قد أتمكن من المساعدة أكثر. الشيء الأكثر فائدة هو الحصول على settings.json (لكن أزل أي كلمات مرور). هل يمكنك توفير ذلك من فضلك؟

FWIW لقد اختبرت 1.6. *> 1.8.3 ولم أجرب هذا ولكن يمكن أن يكون مرتبطًا بإعداداتك. 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"
              }
            }
          }
        }*/
      ]
    }
}

حسنًا ، أعطني دقيقتين.

كلا ، لم يتم تكرار ذلك ، توجد أزرار شريط الأدوات بالنسبة لي ..

هل هذا المثيل عام يمكنني الوصول إليه؟ لا تتردد في مراسلتي عبر البريد الإلكتروني على العنوان [email protected]

سؤال غبي .. هل أنت

  • [x] مسح ذاكرة التخزين المؤقت للمتصفح؟
  • [x] محاولة التشغيل باستخدام 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 unpack. لقد استخدمت rsync لتحديث كل شيء

آه ، أتساءل عما إذا كان المشرف الأخير قد وضع بعض الاختراقات؟ إذا كنت git status هل ترى أي ملفات معدلة؟

ماذا يحدث إذا قمت باستنساخ الريبو الجديد ثم نسخ إعداداتك json؟ سيعمل ذلك ولكن من الواضح أنه لا يصلح مشكلة وجود شيء غريب ..

سأفعل ذلك الآن. نعم ، إنه غريب جدًا .. كما لو أن المجلد الجذر للخطوط ليس هو نفسه etherpad

الرمز صحيح بالمناسبة. src / هو المجلد الجذر ..

أعتقد أن المشرف السابق قد اخترق شيئًا ما ، لا يمكنني أن أقول ماذا بدون رؤية git diff. هل يمكننا إغلاق هذا الآن؟

لم يستخدم المسؤول السابق git (لم يتم تثبيته) ، ولا يزال لا يعمل بعد استنساخ نظيف ..

تضمين التغريدة استنساخ نظيف تمامًا وتشغيله ولا يعمل؟ :! لدي شعور غريب في الإعداد الخاص بك .. أي أخطاء أو تحذيرات في السجل؟

ماذا لو قمت باستنساخ نظيف تمامًا ولم تغير أي إعدادات؟ هل ما زالت تفشل بعد ذلك؟

هل توجد أي فرصة لجعلها عامة مؤقتًا لكي أتمكن من تصحيحها؟

لا ، إنه موجود على شبكة إنترانت آمنة .. هل يمكن أن يكون للترقية من العقدة 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. سؤال غبي ، لكن ماذا تقصد بالضبط بـ "my" git sha؟

لقد عدت إلى 1.6.2 وقمت بتعيين تصغير إلى خطأ وفجأة يعمل مرة أخرى (قبل ذلك لم تعمل حتى رموز الإصدار القديم). هذا يبعث على الارتياح .. سأحاول إجراء إعداد نظيف آخر الأسبوع المقبل باستخدام هذه الإعدادات ، ربما هذه المرة ستنجح: 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/ هو مسار شائع جدًا تستخدمه التطبيقات الأخرى أيضًا.

حسنًا ، سيتم الترتيب في أسرع وقت ممكن. يجب أن يكون اليوم ، قد لا يتم دمجه هذا الأسبوع ، لذلك قد تحتاج يا رفاق إلى تطبيق التصحيح.

بعد أسبوع الإصدار ، نحاول جميعًا قضاء الوقت مع العائلة وما إلى ذلك.

لا يمكنني تكرار هذا مع تكوين اباتشي الخاص بي. هل يمكن لأي شخص لصق تكوين أباتشي المخالف؟

تم اختبار nginx أيضًا مع تكوين wiki ولا يمكن النسخ المتماثل هناك ؛ /

image

image

يجعلني أعتقد أنكم جميعًا تجربة غريبة من طراز Apache mis-config / quirk. من أين حصلتم جميعًا على تكوين apache subdir الخاص بك؟ نحن لا نقدم واحدة على wiki afaik لذا أعتقد أنكم ربما ذهبتم إلى المارقة؟ : ص

أنا أختبر PS التي أختبرها مقابل التطوير ، وهو إلى حد كبير ماكينة الصراف الآلي للإصدار وتكوين 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;
}

لقد لاحظت فشل الاختبارات / الواجهة الأمامية / index.html والذي يبدو غريبًا

لقد حاولت أيضًا على /pad/foo/p/blah فقط للتأكيد على عدم وجود جانب Etherpad للخلل وأن الأمور تبدو جيدة ...

لا يمكنني تكرار هذا مع تكوين اباتشي الخاص بي. هل يمكن لأي شخص لصق تكوين أباتشي المخالف؟

تلك هي خاصتي:

<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 mis-config / quirk. من أين حصلتم جميعًا على تكوين apache subdir الخاص بك؟ نحن لا نقدم واحدة على wiki afaik لذا أعتقد أنكم ربما ذهبتم إلى المارقة؟ : ص

هنا

يجعلني أعتقد أنكم جميعًا تجربة غريبة من طراز Apache mis-config / quirk. من أين حصلتم جميعًا على تكوين apache subdir الخاص بك؟ نحن لا نقدم واحدة على wiki afaik لذا أعتقد أنكم ربما ذهبتم إلى المارقة؟ : ص

هنا

لقد بحثت هناك ولا تغطي الأمثلة وضع Etherpad في قرص فرعي لـ Apache ...

image

استخدام نسخة معدلة قليلاً من القصاصة الخاصة بك

<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>

image

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

لا أستطيع أن أفهم لماذا ليس لدي دليل فرعي "لوحة".

لذلك ، بدأت من الصفر على مضيف جديد.

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.

محو ذاكرة التخزين المؤقت للمتصفح ، والنتيجة:

image

عجيب. سأحاول استخدام صورة عامل الإرساء محليًا لمعرفة ما إذا كان ذلك يغير الأشياء

JohnMcLear هذا لا يصدق حقا. لقد حاولت بنفس التكوين تمامًا كما فعلت ، في المنفذ 81 ، في مضيف منفصل ، وما إلى ذلك ... وما زالت المشكلة تحدث.
لقد حرصت على إفراغ ذاكرة التخزين المؤقت في كل مرة.

فيما يلي إصدارات البرامج الخاصة بي:

node: v10.20.1
npm: 6.14.4
apache2: Apache/2.4.38 (Debian)
etherpad: 1.8.3 (6210114)

لدي نفس المشكلة بالضبط. الرموز مفقودة عند تشغيل البروكسي (nginx) وتعيين تصغير إلى صحيح. بمجرد أن أقوم بتعيين 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 وأستخدم إعادة الكتابة ، ستعمل. أعتقد أن هذه المشكلة تظهر فقط عندما نستخدم موقعًا مختلفًا (مثل / لوحة).

تهيئة 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;
        }
}

قال المرجع إن تصغير الصواب / الخطأ لا يغير النتيجة. لم يذكر المرجع أيضًا أي وكيل مراجعة ... سأتحقق مع minify true عندما أصل إلى المنزل.

تم التأكيد على أنه ناتج عن تصغير.

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/a8c66b3b513b058e338c66b3b513b058e33 ستظهر الرموز ولكن الخط غير صحيح في بعض الأجزاء الداخلية للوسادة وربما عناصر أخرى ..

أي اقتراحاتjakubpawlowiczseballot؟

JohnMcLear إحدى الطرق لجعلها تعمل من أجلك قد تكون من خلال التحويلات التعسفية ، راجع https://github.com/jakubpawlowicz/clean-css#how -to- application-Optional -transformations-to-css-properties

الفكرة الأخرى هي تمرير خيارات الإدخال لتنظيف 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 مغلق ... لا ينبغي إغلاقه. OP FWIW يمكنك النقر فوق إلغاء المتابعة أو إلغاء الاشتراك أو أي شيء إذا كنت لا تريد الضوضاء.

لم يتم حل هذا بعد ، إذا لم يكن هناك تصحيح بواسطة EOW ، فسأحاول التصحيح.

أود حقًا أن أرى تصحيحًا مجتمعيًا لهذا الأمر على الرغم من أنه إذا كان بإمكان شخص ما إيجاد الوقت.

JohnMcLear أود حقًا أن أكون قادرًا على المساعدة وأخذ الوقت في هذا الأمر ولكن ليس لدي مهارات مطور وحتى أقل في nodejs. آمل أن يتمكن الآخرون من القيام بذلك. يمكنني فقط دعمك بأفكاري ...

بينما أنا أقدر ذلك ، أفكارك لا تغير الحفاضات ؛)

bumpseballot

مرحبًا ، ليس لديك الكثير من الأفكار حول هذا ، آسف ... هل هناك طريقة لإعادة إنتاجه محليًا؟

  1. git clone develop
  2. تحويل minify إلى true
  3. قم بتشغيل Etherpad وقم بزيارة وسادة (التأكد من عمل الأشياء)
  4. تثبيت nginx
  5. انسخ ما يلي إلى / etc / nginx / sites-enabled / default
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;
}
  1. أعد تشغيل nginx
    http://127.0.0.1 : 9001 / p / blah يصبح http://127.0.0.1/pad/foo/p/blah
  2. افتح http://127.0.0.1/pad/foo/p/blah في المتصفح
  3. انقر فوق علامة تبويب الشبكة في المتصفح ولاحظ أن الخطوط الداخلية لـ iframe 404. هذا بسبب تمرير import للمسار الصحيح ولكن cleanCSS أعاد كتابته (بشكل صحيح) إلى ../../../ - ما أفهمه هو ذلك لأن كل من اللوحة والمحرر يستخدمان نفس @ font.css وكلاهما لهما؟ basePaths مختلفة؟ ثم واحد يعمل والآخر لا عند التصغير. لا يمكنني التفكير في حل أنيق ولكن أعتقد أنك قد تكون قادرًا على ذلك؟

seballot أي تقدم

لا آسف لا أستطيع العثور على حل ...

أنا أيضًا ، CleanCSS يقوم ببعض السحر الذي لا أفهمه (أنا لست رجل CSS) ولا تعمل أي من مثيلاتي في مجموعات فرعية ، لذا ليس من المثير للاهتمام بالنسبة لي أن أتعلم أيضًا

لا أرغب في ذلك ولكن قد أحتاج إلى استبدال cleanCSS بـ csso لأنني أستطيع الحصول على csso للعمل ولكني أعتقد أنني في النهاية لا أحل المشكلة بشكل صحيح وأن csso ليس قريبًا من أداء cleanCSS لحالة الاستخدام الخاصة بنا .

لقد صدمت مطور CleanCSS لمعرفة ما إذا كان بإمكاننا التعاون لإصلاح المشكلة :)

لطيف ! إذا كان يعمل بشكل جيد مع csso ، فلماذا لا تتماشى معه؟

يقوم csso بتصغير عدد مرات تحميل الصفحة ولكنه لا يقلل منها. كما أنني أفضل استخدام cleanCSS كمشروع / مستندات وما إلى ذلك ، ولا أمانع في إلقاء بعض الموارد في مشروع جيد ، فهذا يعني أنه يمكنني التركيز على المشاريع الخاصة بـ Ether

أواجه نفس المشكلة كما في هذا الموضوع.

  • تم تثبيت etherpad من مستودع git وعندما أقوم بفتح ./bin/run.sh ، وفتح المنفذ 9001 على المضيف المحلي ، يكون التثبيت جيدًا وتظهر الرموز بشكل صحيح.
  • عندما أقوم بتشغيل هذا على خادم nginx ، (والذي يشغل أيضًا جيتسي) ، لا أرى أيقونات شريط الأدوات. يبدو أن كل شيء آخر يعمل بشكل رائع.

يمكن لأي شخص أن يرشدني كيف يمكنني حل هذه المشكلة. لا توجد تغييرات كبيرة في ملف settings.json.

الحل هو تعيين تصغير إلى خطأ في settings.json

سأحاول إلقاء نظرة هذه الليلة.

تمكنت من تكرار المشكلة باستخدام تهيئة nginx التي قدمها جون في https://github.com/ether/etherpad-lite/issues/3956#issuecomment -625163151 في نفس المشكلة.

أعتقد أن هناك مشكلة سواء في التكوين إنجن إكس نشر وفي التعليمات البرمجية إيثرباد ل.

مزيد من التفاصيل لاحقًا.

لقد أمضيت للتو ثانيتين في البحث في رمز nginx ولا ينبغي أن يكون له تكوين لـ /static كما هو الحال في النسخ / اللصق الذي قمت به ولكن جذر المشكلة عميق داخل cleanCSS ...

لدينا العديد من القضايا التي تحدث هنا.

  1. يحتوي ملف تهيئة Nginx التجريبي على إعادة توجيه خاطئة لـ /static . يجب حذف قسم location /static بالكامل من هنا . في عاصفة البريد الإلكتروني التي تلقيتها خلال هذه الأيام ، أعتقد أن أتذكر أن مستخدمًا اشتكى - بالفعل - من أن /static سيتعارض مع الكثير من تطبيقات الويب الأخرى . ربما تم تضليله بمثال مشابه لهذا المثال ؛

    يجب إصلاح هذا من خلال التوثيق (الويكي؟ هل كان شخص آخر على الإنترنت؟) وتحسين جودة الأمثلة .

  2. نقل 4177b3f9434e الإعلانات font-face من src/static/css/pad.css إلى ملفين مستوردين ( src/static/css/pad/fonts.css و src/static/css/pad/toolbar.css ) في دليل مختلف ، وعناوين URL في src ذات صلة بمسار ورقة الأنماط ؛

  3. علاوة على ذلك ، بعد دمج 95fd5ce2a45e للنسخة 1.8.4 القادمة ، سيكون لدينا مشكلة خلل في ذاكرة التخزين المؤقت تحتاج أيضًا إلى المعالجة.

أقوم ببعض الاختبارات وأقوم بإعداد العلاقات العامة.

تم فتح # 4002 لإصلاح هذه المشكلة. شكراً جزيلاً لـ JohnMcLear على العمل التمهيدي.

skramsa ، julpec ، lucaguindani ، ashishhari (وجون ، من الواضح): هل هناك شخص منكم في موقع اختبار تلك العلاقات العامة لمعرفة ما إذا كانت تعمل معهم؟ أود الحصول على تصديق مستقل ، إن أمكن.

يرجى أيضًا ملاحظة أن تكوين الوكيل العكسي لا يحتاج إلى قاعدة خاصة لـ "/ static".

شكرا لك على الاعتراف. لم يؤد ضبط minify إلى false إلى حل مشكلة
مشكلة بالنسبة لي.
أنا أستخدم هذا في تثبيت جيتسي على مثيل AWS EC2 ، وهناك
هو خادم nginx يُستخدم لاستضافة جيتسي وأيضًا لبدء العقدة
خادم لخدمة etherpad على نفس الجهاز على المنفذ 9001.

هل هذا يعني أنني قد أحتاج إلى تعديل بعض إعدادات nginx الأخرى؟ (انا لا
فهم الوكيل العكسي بشكل صحيح ولكن هل يمكن أن يكون هذا هو الحال؟) ، أو أفعل ذلك
فقط بحاجة إلى الانتظار حتى يتوفر الإصلاح.

يوم الخميس 14 مايو 2020 الساعة 6:07 صباحًا كتب muxator [email protected] :

لدينا العديد من القضايا التي تحدث هنا.

1.

يحتوي ملف تهيئة Nginx التجريبي على إعادة توجيه خاطئة لـ / static. ال
يجب حذف الموقع بالكامل / القسم الثابت من هنا
https://github.com/ether/etherpad-lite/issues/3956#issuecomment-625163151 .
في عاصفة البريد الإلكتروني التي تلقيتها خلال هذه الأيام ، أعتقد أن أتذكر أن أاشتكى المستخدم - في الواقع - أن / static كان سيتعارض مع الكثير منتطبيقات الويب الأخرى . ربما تم تضليله بمثال مشابه
لهذا

يجب إصلاح هذا من خلال التوثيق (الويكي؟
كان البعض آخر على الإنترنت؟) وتحسين جودةأمثلة .
2.

4177b3f
https://github.com/ether/etherpad-lite/commit/4177b3f9434e8516f8fe4f8e02b2a75ce5d64173
نقل إعلانات وجه الخط من 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 القادمة ، سيكون لدينا مشكلة قصور في ذاكرة التخزين المؤقت
التي تحتاج أيضًا إلى المعالجة.

أقوم ببعض الاختبارات وأقوم بإعداد العلاقات العامة.

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/ether/etherpad-lite/issues/3956#issuecomment-628317976 ،
أو إلغاء الاشتراك
https://github.com/notifications/unsubscribe-auth/AH7VXAS65ZUAR33CPKSI6OLRRM4KZANCNFSM4MSSRTRQ
.

skramsa ، julpec ، lucaguindani ، ashishhari (وجون ، من الواضح): هل هناك شخص منكم في موقع اختبار تلك العلاقات العامة لمعرفة ما إذا كانت تعمل معهم؟ أود الحصول على تصديق مستقل ، إن أمكن.

طيب بالنسبة لي للاختبار. ليس لدي تكوين خاص لـ static .

شكرا لك على الاعتراف. لم يحل ضبط minify إلى false المشكلة بالنسبة لي.

لكنها تعمل بالنسبة لي. تحت apache ، تحولت إلى false وبدأ كل شيء يعمل بشكل جيد.

يمكنني اختباره.

في الخميس 14 مايو 2020 الساعة 1:30 مساءً كتب julpec [email protected] :

skramsa https://github.com/skramsa ،julpec https://github.com/julpec ،
lucaguindani https://github.com/lucaguindani ،ashishhari
https://github.com/ashishhari (وجون ، من الواضح): هو شخص منكم
في موقف اختبار تلك العلاقات العامة لمعرفة ما إذا كانت تعمل معهم؟ أود
مثل التحقق المستقل ، إن أمكن.

طيب بالنسبة لي للاختبار. ليس لدي تكوين خاص للثابت.

شكرا لك على الاعتراف. لم يؤد ضبط minify إلى false إلى حل مشكلة
مشكلة بالنسبة لي.

لكنها تعمل بالنسبة لي. تحت أباتشي ، تحولت إلى خطأ وكل شيء
بدأ العمل بشكل جيد.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/ether/etherpad-lite/issues/3956#issuecomment-628464590 ،
أو إلغاء الاشتراك
https://github.com/notifications/unsubscribe-auth/AH7VXAXKTJKZCAZVRXZIJX3RROQLPANCNFSM4MSSRTRQ
.

التأكيد أيضًا -> إعداد تصغير إلى خطأ يعمل بشكل صحيح على نظامي.
(ربما لم أعد تشغيل الخدمة بشكل صحيح في المرة الأخيرة).

في الخميس 14 مايو 2020 الساعة 1:30 مساءً كتب julpec [email protected] :

skramsa https://github.com/skramsa ،julpec https://github.com/julpec ،
lucaguindani https://github.com/lucaguindani ،ashishhari
https://github.com/ashishhari (وجون ، من الواضح): هو شخص منكم
في موقف اختبار تلك العلاقات العامة لمعرفة ما إذا كانت تعمل معهم؟ أود
مثل التحقق المستقل ، إن أمكن.

طيب بالنسبة لي للاختبار. ليس لدي تكوين خاص للثابت.

شكرا لك على الاعتراف. لم يؤد ضبط minify إلى false إلى حل مشكلة
مشكلة بالنسبة لي.

لكنها تعمل بالنسبة لي. تحت أباتشي ، تحولت إلى خطأ وكل شيء
بدأ العمل بشكل جيد.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/ether/etherpad-lite/issues/3956#issuecomment-628464590 ،
أو إلغاء الاشتراك
https://github.com/notifications/unsubscribe-auth/AH7VXAXKTJKZCAZVRXZIJX3RROQLPANCNFSM4MSSRTRQ
.

لكنها تعمل بالنسبة لي. تحت apache ، تحولت إلى false وبدأ كل شيء يعمل بشكل جيد.
التأكيد أيضًا -> إعداد تصغير إلى خطأ يعمل بشكل صحيح على نظامي.

julpec ، ashishhari : إعداد minify = false هو حل بديل معروف.
الأمل الآن هو معرفة ما إذا كان # 4002 يصلح الخطأ عندما تصغير = صحيح.

سيكون الإجراء على النحو التالي ، قم بذلك فقط إذا كانت جميع الخطوات واضحة بالنسبة لك:

ابدأ في تكرار الخطأ:

  • ضمان minify = true في settings.json
  • إعادة تشغيل Etherapd
  • زيارة صفحة إيثرباد وتحقق من أن لا تظهر الرموز شريط الأدوات

جرب الإصلاح:

  • احتفظ بـ minify = true في settings.json
  • قم بتطبيق # 4002 (افعل ذلك فقط إذا كنت مرتاحًا له)
  • إعادة تشغيل Etherpad
  • زيارة صفحة إيثرباد وتحقق ما إذا كان يتم عرض الرموز شريط الأدوات الآن بشكل صحيح

أود ولكن لا أعرف الإجراء الخاص بتطبيق 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 الذي لا معنى له

شكرا ، سأختبر بعد ظهر اليوم

Hrm أعتقد أن شيئًا ما ليس جيدًا تمامًاmuxator .. أرى 54 طلبًا تقريبًا ، مقابل 49 تقريبًا (على develop ) - لاحظ أن لديّ مكونات إضافية ممكّنة لإعطاء طلبات إضافية. لذلك سيكون هذا PR بمثابة تراجع في أداء تحميل الصفحة لتلبية حالة استخدام غير موثقة / غير مدعومة وهي غير مقبولة IMHO.

image

لاحظ الطلبات المتعددة لنفس الملف ... :( إنه تقدم defo لكن الطلبات المتعددة لنفس الملف ليست الحل الذي نبحث عنه.

يأتي الطلب المتعدد من إطار iframe مختلف على ما أعتقد. تحتاج كل من الصفحة الرئيسية والمحرر iframe إلى الخط ، فقد كان دائمًا هكذا لا؟

تم استخدام afaik cleanCSS لإصلاح هذه المشكلة seballot

كان دائما مثل هذا لا؟

نعم ، كان دائما على هذا النحو.

أعتقد أن cleanCss كان أكثر لتجنب تحميل كل جزء css (pad / popups.css ، pad / editbar.css ، pad / chat.css ...) ، وبدلاً من ذلك قم بتحميل pad.css واحدة فقط

ولكن باستخدام iframe ، يكون المتصفح ملزمًا بطلب ضعف مشاركة كل ملف مع iframe. ولكن يجب أن تستخدم المكالمة الثانية ذاكرة التخزين المؤقت المحلية ("محملة من ذاكرة التخزين المؤقت")

قمت بتطبيق طلب السحب وهو يعمل بدون أي مشكلة (مع اباتشي)

julpec شكرا.

هذا المساء سأحاول معالجة # الطلبات المتعلقة ب JohnMcLear التي

رهيبة tnx مسك الغزال

هل هناك طريقة لتحميل ملفات HAR في مكان ما في Github؟ لقد اختبرت # 4002 وأنا على استعداد لمشاركة التسجيلات ، لكني لا أعرف مكان تحميلها.

العناصر المشتركة:

  • تمت الزيارة http: // localhost : 9001 / p / ciao
  • لا وكيل عكسي
  • وضع الإنتاج: خطأ
  • ابدأ بذاكرة التخزين المؤقت الفارغة للمتصفح

المتغيرات:

  • الإصدار: 4816785aef45 vs # 4002
  • ذاكرة التخزين المؤقت: بارد ( تحميل أول ) مقابل ساخن (> = تحميل ثاني )
  • minify: صحيح مقابل خطأ
  • المتصفح: كروم 81 مقابل فايرفوكس 76

هذه أربعة متغيرات ثنائية -> 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 كيلوبايت |
| Chromium ، مصغر ، أول تحميل | 44 طلبًا
2،0 ميجابايت
1.5 ميغابايت نقلت | 109 أثرياء
3.0 ميجا بايت
تم نقل 1،1 ميغابايت |
| Chromium ، مصغر ، مخبأ ساخن | 45 طلبًا
2،2 ميجا بايت
تم نقل 5،7 كيلوبايت | 129 طلبًا
4،7 ميجا بايت
تم نقل 4،7 كيلو بايت |

الخلاصة هي:

  • يمتلك كل من Chrome و Firefox طريقة مختلفة تمامًا لقياس حركة المرور الخاصة بهم
  • يقدم PR # 4002 المزيد من الطلبات إلى الخادم
  • تتحسن نسبة عدد مرات الدخول إلى ذاكرة التخزين المؤقت : يقل العمود المنقول !
  • تظل أوقات التحميل كما هي ، ضمن حدود ضوضاء القياس

كانت هذه النتائج التي توصلت إليها أيضًا ، فقد استغرقت أيضًا وقتًا للبحث في أدوات تحديد أداء سرعة تحميل الصفحة (بخلاف أدوات المطور) وقررت أنه إذا لم تعطيني أدوات المطور انحرافًا كبيرًا عن الوسيلة ، فستكون النتائج مناسبة بدرجة كافية لتطبيقنا.

من الواضح أن تناقص إجمالي حجم النقل يعد أمرًا جيدًا ، ولكن قد تكون النفقات العامة لطلب http مكلفة بسبب زمن الوصول. يمكننا دمج هذا ولكن ضع في اعتبارك أنه عندما نعيد كتابة الواجهة الأمامية (التي تبدو حتمية بسبب كل JS المضمنة التي ستحتاج في النهاية إلى التغيير) فهذا مجال يجب أن نسعى جاهدين لتحسينه.

كل الأشياء التي قيلت ، تعتبر Etherpad رائعة مقارنة بمعظم الآخرين في مجال htis ، باستثناء مستندات Google التي تعد المعيار الذهبي لـ "وقت التحرير" السريع للغاية والذي يعتبر في هذا العالم ملكًا وليس "تحميل" نهاية الصفحة.

لذلك TLDR ؛ دمج muxator - هذا الخيط موجود كمورد لأولئك الذين يتطلعون إلى تحسين مثيلات Etherpad NOT في المجلدات الفرعية.

عمل عظيم !

+1 tnx!

: +1:

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات