Etherpad-lite: Ikon Bilah Alat tidak muncul setelah pembaruan (1.6.2 -> 1.8.3) saat mengekspos di subdir melalui proxy terbalik dan minify = true

Dibuat pada 28 Apr 2020  ·  110Komentar  ·  Sumber: ether/etherpad-lite

image

Ikon bilah alat tidak muncul dan saya mendapatkan kesalahan jenis font yang hilang, tetapi semuanya ada di foldernya, tidak ada yang berubah. Bisakah Anda membantu saya memperbaiki masalah ini?

DAPATKAN/static/font/Roboto-Regular.ttf net :: ERR_ABORTED 404 (Tidak Ditemukan)

Saya mendapatkan ini untuk semua jenis font.

Bug Special case Bug UI express server

Komentar yang paling membantu

Punya masalah yang sama persis.

Saya menggunakan proxy terbalik dan instance Etherpad ada di subdirektori (/ etherpad). Saya berhasil membuatnya dengan benar menambahkan yang berikut ini ke konfigurasi apache saya.

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

Saya tidak mengubah apa pun di settings.json.

Semua 110 komentar

Harap berikan detailnya.

Apakah Anda menggunakan reverse proxy?
Apakah Anda menjalankan dalam mode pengembangan atau produksi.
Diperkecil?
Salinan aman atau settings.json Anda
Dll

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

Ini berjalan dalam mode pengembangan, meskipun layanan systemd memiliki "Lingkungan = NODE_ENV = produksi" di dalamnya, tidak ada proxy terbalik, css diminimalkan, settings.json hampir tidak tersentuh (hanya mysql dan admin pw yang diubah).

Sepertinya etherpad tidak dapat memuat semua font karena terlihat/static/font/*.ttf alih-alih/ etherpad / src / static / font /

Coba ubah minify menjadi false dan maxage menjadi 0 di settings.json

Saya lakukan, tidak ada yang berubah

Di laptop saya sekarang, mungkin bisa membantu lebih banyak. Hal yang paling berguna adalah mendapatkan settings.json Anda (tetapi hapus kata sandi apa pun). Bisakah Anda memberikan itu?

FWIW Saya menguji 1.6. *> 1.8.3 dan tidak mengalami hal ini tetapi mungkin terkait dengan pengaturan Anda. Json memiliki beberapa warisan warisan di:!

Jika Anda tidak ingin memberikan pengaturan, satu hal yang harus dilakukan adalah:

cp settings.json settings.backup.json
cp settings.json.template settings.json
Kemudian salin host database Anda / user / pass dari settings.backup.json menjadi settings.json

Mulai ulang dan lihat apakah sudah diperbaiki.

/*
  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"
              }
            }
          }
        }*/
      ]
    }
}

Oke keren, beri aku 2 menit.

Tidak, itu tidak mereplikasi, tombol toolbar ada untuk saya ..

Apakah instance ini bersifat publik yang dapat saya akses? jangan ragu untuk mengirim email kepada saya URL [email protected]

Pertanyaan bodoh .. Apakah Anda

  • [x] Hapus cache browser?
  • [x] Mencoba menjalankan menggunakan bin/run.sh

Terima kasih!

Sayangnya itu bukan contoh publik.
Saya mengganti setting.json dengan template baru, juga mengganti skin menjadi no-skin. masih tidak berhasil ..
Dan ya, saya telah menjalankan run.sh, memulai kembali layanan dan menghapus uang tunai :)

Ini adalah layanan systemd btw:
[Satuan]
Deskripsi = Etherpad
Setelah = syslog.target network.target

[Layanan]
Ketik = sederhana
Pengguna = etherpad
Grup = etherpad
WorkingDirectory = / opt / etherpad
Lingkungan = NODE_ENV = produksi
ExecStart = / opt / etherpad / bin / run.sh
Mulai ulang = selalu

[Install]
WantedBy = multi-user.target

Bagaimana Anda menginstal? Apakah Anda git clone atau apakah Anda mengambil .zip yang telah dirilis dan membongkar?

URL Permintaan: 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

Semua tampak baik-baik saja bagiku.

Saya menginstalnya melalui git clone, atau lebih tepatnya memperbaruinya. Saya yakin itu dipasang beberapa tahun yang lalu (oleh admin lain) melalui zip unpack. Saya menggunakan rsync untuk memperbarui semuanya

Ah, saya ingin tahu apakah admin terakhir melakukan beberapa peretasan? jika Anda git status apakah Anda melihat file yang dimodifikasi?

Apa yang terjadi jika Anda mengkloning repo baru lalu menyalin settings.json? Itu akan berhasil tetapi jelas tidak memperbaiki masalah bahwa ada sesuatu yang aneh ..

Saya akan melakukannya sekarang. ya, itu sangat aneh .. seolah-olah folder root untuk font-font tersebut tidak sama dengan etherpad

Kodenya benar btw. src / adalah folder root ..

Saya pikir admin sebelumnya meretas sesuatu, saya tidak bisa mengatakan apa tanpa melihat git diff. Bisakah kita menutup ini sekarang?

admin sebelumnya tidak menggunakan git (tidak diinstal), masih tidak berfungsi setelah klon bersih ..

@jamur_kejang Kloning dan jalankan benar-benar bersih dan tidak berhasil? :! Saya merasa ada yang aneh dengan pengaturan Anda .. Ada kesalahan atau peringatan di log?

Bagaimana jika Anda melakukan klon yang benar-benar bersih dan tidak mengubah pengaturan apa pun? Apakah itu masih gagal?

Adakah kemungkinan Anda dapat membuatnya menjadi publik sementara untuk saya debug?

tidak, itu ada di intranet yang aman .. dapatkah peningkatan dari node 6 ke 12 ada hubungannya dengan itu?

Tidak yakin .. Saya tidak begitu yakin langkah debug lainnya di sini ..

Satu-satunya petunjuk yang saya miliki adalah ..
https://github.com/ether/etherpad-lite/blob/develop/src/node/utils/Minify.js#L429

Tapi Anda bilang Anda membersihkan semua cache dan melakukan pembersihan ..

Anda menonaktifkan minify, apakah rm -Rf src/node_modules && rm src/package-lock.json lalu menjalankan bin/run.sh ya? Maksud saya, Anda melakukan klon bersih jadi; \

Berapa nilai git sha , npm --version dan nodejs version ?

npm adalah 6.14.4 dan node -v adalah 12.16.2. pertanyaan bodoh, tapi apa sebenarnya yang Anda maksud dengan "saya" git sha?

Saya reroll ke 1.6.2 dan mengatur minify ke false dan tiba-tiba berfungsi lagi (sebelum itu bahkan ikon versi lama tidak berfungsi). Itu melegakan .. Saya akan mencoba membuat pengaturan bersih lagi minggu depan dengan pengaturan ini, mungkin kali ini akan berhasil: D Terima kasih banyak atas bantuan Anda !!

Di folder etherpad Anda, ketik git rev-parse HEAD

Saya ingin melihat komitmen mana yang Anda lakukan.

Halo
Saya memiliki masalah yang persis sama kecuali saya berada di belakang proxy.
Saya melakukan pengujian dengan menyimpan instalasi saya dan mengkloning repositori. Kemudian saya cukup menyalin file konfigurasi saya dan memulai ulang layanan.
Saya masih memiliki masalah yang sama meskipun instalasi baru.

Tapi:
Di sisi lain, hal yang menarik, ketika saya mengakses layanan tanpa menggunakan proxy dan tanpa https, tidak ada masalah, ikon ditampilkan dengan benar !!

Konfigurasi proxy apache berasal dari dokumentasi, tidak ada yang eksotis di pihak saya.

Punya masalah yang sama persis.

Saya menggunakan proxy terbalik dan instance Etherpad ada di subdirektori (/ etherpad). Saya berhasil membuatnya dengan benar menambahkan yang berikut ini ke konfigurasi apache saya.

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

Saya tidak mengubah apa pun di settings.json.

@skramsa belum menyebutkan proxy terbalik jadi saya rasa tidak ada hubungannya? Skramsa harap konfirmasikan bahwa tidak ada proxy balik dalam pengaturan Anda.

Punya masalah yang sama persis.

Saya menggunakan proxy terbalik dan instance Etherpad ada di subdirektori (/ etherpad). Saya berhasil membuatnya dengan benar menambahkan yang berikut ini ke konfigurasi apache saya.

<Location /static/font>
    ProxyPass http://localhost:9001/static/font retry=0 timeout=30
    ProxyPassReverse http://localhost:9001/static/font
</Location>

Saya tidak mengubah apa pun di settings.json.

Mengapa aturan coba lagi dan batas waktu?

@skramsa belum menyebutkan proxy terbalik jadi saya rasa tidak ada hubungannya? Skramsa harap konfirmasikan bahwa tidak ada proxy balik dalam pengaturan Anda.

Ya, tetapi @julpec berada di belakang proxy, jadi saya

Punya masalah yang sama persis.
Saya menggunakan proxy terbalik dan instance Etherpad ada di subdirektori (/ etherpad). Saya berhasil membuatnya dengan benar menambahkan yang berikut ini ke konfigurasi apache saya.

<Location /static/font>
    ProxyPass http://localhost:9001/static/font retry=0 timeout=30
    ProxyPassReverse http://localhost:9001/static/font
</Location>

Saya tidak mengubah apa pun di settings.json.

Mengapa aturan coba lagi dan batas waktu?

Anda benar, saya rasa itu tidak diperlukan, saya baru saja melakukan ini dengan terburu-buru kemarin setelah pembaruan;)

@skramsa belum menyebutkan proxy terbalik jadi saya rasa tidak ada hubungannya? Skramsa harap konfirmasikan bahwa tidak ada proxy balik dalam pengaturan Anda.

Ya, tetapi @julpec berada di belakang proxy, jadi saya

Terima kasih

Sebagai pengingat :

Di sisi lain, hal yang menarik, ketika saya mengakses layanan tanpa menggunakan proxy dan tanpa https, tidak ada masalah, ikon ditampilkan dengan benar !!

Dalam kasus saya, jelas itu terkait proxy.

Selain itu, saya berada dalam situasi migrasi instans Etherpad saya dan saya memigrasi database saya dan setelah itu saya memperbarui Etherpad. Saya memiliki ini keluar di log sekarang:

[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

Tidak tahu apakah itu dapat menyebabkan kesalahan ...

Sebagai pengingat :

Di sisi lain, hal yang menarik, ketika saya mengakses layanan tanpa menggunakan proxy dan tanpa https, tidak ada masalah, ikon ditampilkan dengan benar !!

Dalam kasus saya, jelas itu terkait proxy.

Selain itu, saya berada dalam situasi migrasi instans Etherpad saya dan saya memigrasi database saya dan setelah itu saya memperbarui Etherpad. Saya memiliki ini keluar di log sekarang:

[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
Tidak tahu apakah itu dapat menyebabkan kesalahan ...

Buat masalah terpisah untuk ini. Ini perlu ditangani.

Saya memiliki masalah yang sama.
Saya berada di belakang reverse proxy (Apache) dan saya menggunakan container docker terbaru (saat ini) (menarik gambar satu menit yang lalu):

$ docker image ls
REPOSITORY           TAG            IMAGE ID            CREATED             SIZE
etherpad/etherpad    latest         878d71df1b8e        44 hours ago        273MB

Bilah alat terlihat persis seperti di laporan asli. Etherpad diproksikan di bawah /pad/ , tetapi font dimuat dari /static/ , yang menghasilkan kesalahan 404.

Saya lebih suka tidak menggunakan solusi dari @lucaguindani , karena /static/ adalah jalur yang sangat umum yang juga digunakan oleh aplikasi lain.

Oke, akan mengurutkan ASAP. Seharusnya hari ini, mungkin tidak akan digabungkan minggu ini jadi kalian mungkin perlu menerapkan tambalan.

Setelah minggu rilis, kami semua mencoba menghabiskan waktu bersama keluarga, dll.

Saya tidak dapat mereplikasi ini dengan konfigurasi apache saya. Bisakah seseorang menempelkan konfigurasi apache yang melanggar?

Telah menguji nginx juga dengan konfigurasi wiki dan tidak dapat mereplikasi di sana; /

image

image

Membuat saya berpikir kalian semua mengalami Apache mis-config / quirk yang aneh. Dari mana Anda mendapatkan konfigurasi subdirektori apache Anda? Kami tidak menyediakannya di wiki afaik jadi saya pikir mungkin kalian nakal? : P

PS Saya sedang menguji pengembangan, yang merupakan rilis atm dan konfigurasi nginx adalah:

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

Saya memang melihat tes / frontend / index.html gagal yang tampaknya aneh

Saya juga mencoba /pad/foo/p/blah hanya untuk mengonfirmasi tidak ada bug di sisi Etherpad dan semuanya terlihat baik-baik saja ...

Saya tidak dapat mereplikasi ini dengan konfigurasi apache saya. Bisakah seseorang menempelkan konfigurasi apache yang melanggar?

Ini milikku:

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

Luar biasa terima kasih beri saya satu jam akan mencoba malam ini.

Membuat saya berpikir kalian semua mengalami Apache mis-config / quirk yang aneh. Dari mana Anda mendapatkan konfigurasi subdirektori apache Anda? Kami tidak menyediakannya di wiki afaik jadi saya pikir mungkin kalian nakal? : P

Sini

Membuat saya berpikir kalian semua mengalami Apache mis-config / quirk yang aneh. Dari mana Anda mendapatkan konfigurasi subdirektori apache Anda? Kami tidak menyediakannya di wiki afaik jadi saya pikir mungkin kalian nakal? : P

Sini

Saya melihat di sana dan contoh tidak mencakup menempatkan Etherpad di subdir untuk Apache ...

image

Menggunakan versi snip Anda yang sedikit dimodifikasi

<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

Saya melihat di sana dan contoh tidak mencakup menempatkan Etherpad di subdir untuk Apache ...

itu tidak masuk akal. Anda dapat meletakkan apa pun yang Anda inginkan di tag lokasi. Tapi saya akan mencoba dengan Anda config dan tanpa "subdirektori" sekarang.
Terima kasih atas investigasi Anda btw

itu tidak masuk akal. Anda dapat meletakkan apa pun yang Anda inginkan di tag lokasi. Tapi saya akan mencoba dengan Anda config dan tanpa "subdirektori" sekarang.

itu tidak masuk akal ... di otakku. Tapi di dunia nyata itulah yang menyebabkan masalah!
Poin bagus: +1:
Namun, saya tidak mengerti mengapa semuanya bekerja dengan baik sebelumnya, ini telah berjalan selama bertahun-tahun di belakang proxy terbalik dengan ini sebagai konfigurasi.
Saya benar-benar membutuhkan subdirektori karena saya memiliki layanan berbeda yang berjalan di belakang apache "sistem masuk tunggal".
Apakah mungkin menggunakan sesuatu selain "/" sebagai lokasi?

Terima kasih telah menangani Masalah ini

Salin / tempel konfigurasi saya dari atas, saya menggunakan lokasi berbeda ...

Saya tidak melihat perbedaannya dengan milik saya sendiri, kecuali untuk pengaturan otentikasi.
Saya akan mencoba sekarang

Salin / tempel konfigurasi saya dari atas, saya menggunakan lokasi berbeda ...

masih masalah yang sama: tidak ada tampilan ikon

Versi Apache?

Versi server: Apache / 2.4.38 (Debian)
Server dibangun: 2019-10-15T19: 53: 42

Saya menyelidiki dengan pemeriksa elemen dan inilah yang dia berikan kepada saya sebagai URL untuk font:

Request URL: https://example.org/static/font/RobotoMono-Regular.ttf

Harus:

Request URL: https://example.org/pad/static/font/RobotoMono-Regular.ttf

Saya tidak mengerti mengapa saya tidak memiliki subdirektori "pad".

Jadi, saya mulai dari awal dengan host baru.

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

Tidak ada yang berubah dalam konfigurasi aslinya.

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

Versi Apache adalah 2.4.29.

Menghapus cache browser, dan hasilnya:

image

Aneh. Saya akan mencoba menggunakan gambar buruh pelabuhan secara lokal untuk melihat apakah itu mengubah sesuatu

@JohncLear ini benar-benar luar biasa. Saya mencoba dengan konfigurasi yang persis sama dengan Anda, pada port 81, di vhost terpisah, dll ... dan masalah masih terjadi.
Saya memastikan untuk mengosongkan cache setiap saat.

Ini adalah versi perangkat lunak saya:

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

Saya memiliki masalah yang persis sama. Ikon hilang ketika dijalankan melalui proxy (nginx) dan minify disetel ke true. Segera setelah saya menyetel minify ke false dan memulainya dengan clearRun.sh dan menghapus cache browser, ikon tersebut berfungsi. Di versi lama yang kami gunakan cukup lama, ini berfungsi dengan minify: true dan konfigurasi Nginx ini:

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

Saya menemukan, ketika saya menggunakan konfigurasi nginx dari @JohnMcLear dan menggunakan rewrite, itu akan berhasil. Saya kira masalah itu hanya muncul, ketika kami menggunakan lokasi yang berbeda (seperti / pad).

Konfigurasi Nginx yang berfungsi:

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 mengatakan mengecilkan benar / salah tidak mengubah hasil. Op juga tidak menyebutkan proksi rev .... Saya akan memeriksa dengan mengecilkan benar ketika saya sampai di rumah.

Dikonfirmasi itu disebabkan oleh minify.

https://github.com/ether/etherpad-lite/issues/3956#issuecomment -620476150 mengklaim minify false tidak ada bedanya dan saya harus memeriksanya sendiri jika itu masalahnya ..

*Telapak tangan.

Akan memperbaiki ASAP.

FWIW Nginx juga mengalami kegagalan ini dan kegagalan tersebut ada di semua halaman (pad, index, timeslider dll).

Masalahnya adalah dengan implementasi clean-css . Css 3 sampai 4 menghapus opsi relativeTo dan penghapusan ini menyebabkan bug ini. Saya beralih ke rebase dan rebaseTo dalam contoh saya

https://github.com/JohnMcLear/etherpad-lite/commit/e684a3ba4129d1bae54e7b65a316a7d690217241 dan merupakan semi-fix dan https://github.com/JohnMcLear/etherpad-lite/commit/a8c66b3b513b058e89f16b7 . Ikon akan muncul tetapi font salah untuk beberapa internal pad dan mungkin item lainnya ..

Ada saran @jakubpawlowicz @seballot ?

@JohnMcLear salah satu cara untuk membuatnya bekerja untuk Anda mungkin melalui transformasi sewenang-wenang, lihat https://github.com/jakubpawlowicz/clean-css#how -to-apply-arbitrary-transformations-to-css-properties

Ide lainnya adalah meneruskan opsi input ke clean-css melalui hash, lihat https://github.com/jakubpawlowicz/clean-css/blob/master/test/module-test.js#L620 , mis.

new CleanCSS().minify({"path/to/stylesheet/a.css": { styles: "/* source of a.css goes here */" }})

dan menggunakan opsi rebaseTo , tetapi tanpa wawasan lebih lanjut saya tidak tahu apakah itu akan berhasil atau tidak.

Semoga berhasil!

Tutup ? Betulkah ?

OP ditutup ... Seharusnya tidak ditutup. OP FWIW Anda dapat mengklik berhenti mengikuti atau berhenti berlangganan atau sesuatu jika Anda tidak ingin kebisingan.

Ini masih belum terselesaikan, jika belum punya patch oleh EOW saya akan coba patch.

Saya sangat ingin melihat tambalan komunitas untuk ini meskipun jika seseorang dapat meluangkan waktu.

@JohnMcLear Saya benar-benar ingin dapat membantu dan meluangkan waktu untuk hal ini tetapi saya tidak memiliki keterampilan pengembang dan bahkan kurang dalam nodejs. Saya berharap orang lain bisa melakukannya. Saya hanya dapat mendukung Anda dengan pikiran saya…

Sementara saya menghargainya, pikiran Anda tidak mengubah popok;)

benjolan @eballot

Hai, tidak tahu banyak tentang yang satu ini, maaf ... Apakah ada cara untuk memperbanyaknya secara lokal?

  1. git clone develop
  2. ubah minify menjadi true
  3. Jalankan Etherpad dan kunjungi pad (memastikan semuanya berfungsi)
  4. instal nginx
  5. Salin di bawah ini ke / 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. Mulai ulang nginx
    http://127.0.0.1 : 9001 / p / blah menjadi http://127.0.0.1/pad/foo/p/blah
  2. Buka http://127.0.0.1/pad/foo/p/blah di browser
  3. Klik tab jaringan di browser & perhatikan bahwa font dalam iframe 404. Hal ini disebabkan @import melewati jalur yang benar tetapi cleanCSS menulis ulang (memang demikian) menjadi ../../../ - pemahaman saya adalah itu karena pad dan editor menggunakan @ font.css yang sama dan keduanya memiliki? basePaths berbeda? kemudian satu bekerja dan satu tidak setelah minifikasi. Saya tidak bisa memikirkan perbaikan yang elegan tetapi saya pikir Anda mungkin bisa?

@seballot ada kemajuan sobat?

Tidak, maaf saya tidak dapat menemukan perbaikan ...

Saya juga, cleanCSS melakukan beberapa keajaiban yang saya tidak mengerti (saya bukan orang CSS) dan tidak ada contoh saya yang berjalan di subdir sehingga agak tidak menarik bagi saya untuk mempelajarinya juga

Saya tidak ingin tetapi saya mungkin perlu mengganti cleanCSS dengan csso karena saya bisa mendapatkan csso untuk bekerja tetapi saya pikir pada akhirnya saya tidak menyelesaikan masalah dengan benar dan csso tidak ada yang sama performanya dengan cleanCSS untuk kasus penggunaan kami .

Saya menemukan dev cleanCSS untuk melihat apakah kita dapat berkolaborasi untuk memperbaikinya :)

bagus! jika itu bekerja dengan baik dengan csso, mengapa tidak melakukannya?

csso memperkecil tetapi tidak mengurangi # pemuatan halaman. Juga saya lebih suka cleanCSS sebagai proyek / dokumen dll. Dan tidak keberatan membuang beberapa sumber daya pada proyek yang bagus itu berarti saya dapat fokus pada usaha khusus Ether

Saya menghadapi masalah yang sama seperti di utas ini.

  • Menginstal etherpad dari git repository dan ketika saya tidak ./bin/run.sh, dan membuka port 9001 di localhost, instalasinya bagus dan ikon ditampilkan dengan benar.
  • Ketika saya menjalankan ini di server nginx, (yang juga menjalankan jitsi), saya tidak melihat ikon toolbar. Segala sesuatu yang lain tampaknya bekerja dengan baik.

Adakah yang bisa membimbing saya bagaimana saya bisa mengatasi masalah ini. Tidak ada perubahan besar dalam file settings.json.

Solusinya adalah dengan menyetel minify ke false di settings.json

Saya akan mencoba untuk melihat-lihat malam ini.

Saya dapat mereplikasi masalah menggunakan konfigurasi nginx yang diberikan oleh John di https://github.com/ether/etherpad-lite/issues/3956#issuecomment -625163151 dalam masalah yang sama ini.

Saya pikir ada masalah baik dalam konfigurasi Nginx yang diposting dan dalam kode Etherpad.

Lebih detailnya nanti.

Saya hanya menghabiskan 2 detik melihat kode nginx dan seharusnya tidak memiliki konfigurasi untuk /static seperti yang ada di salin / tempel yang saya lakukan tetapi akar masalahnya jauh di dalam cleanCSS ...

Kami memiliki berbagai masalah yang terjadi di sini.

  1. file konfigurasi Nginx uji memiliki pengalihan yang salah untuk /static . Seluruh bagian location /static harus dihapus dari sini . Dalam badai email yang diterima selama hari-hari ini, saya berpikir untuk mengingat bahwa seorang pengguna mengeluh - memang - bahwa /static akan berbenturan dengan banyak aplikasi web lainnya . Mungkin dia disesatkan oleh contoh yang mirip dengan ini;

    Ini harus diperbaiki melalui dokumentasi (wiki? Ada yang lain di internet?) Dan meningkatkan kualitas contoh .

  2. 4177b3f9434e memindahkan deklarasi font-face dari src/static/css/pad.css ke dua file yang diimpor ( src/static/css/pad/fonts.css dan src/static/css/pad/toolbar.css ) ke direktori yang berbeda, dan URL di src relatif terhadap jalur stylesheet ;

  3. Selain itu, setelah menggabungkan 95fd5ce2a45e untuk 1.8.4 yang akan datang, kami akan memiliki masalah cache staleness yang juga perlu diatasi.

Saya melakukan beberapa tes dan mempersiapkan PR.

Membuka # 4002 untuk memperbaiki masalah ini. Terima kasih banyak kepada @JohnMcLear untuk pekerjaan pendahuluan.

@skramsa , @julpec , @lucaguindani , @ashishhari (dan John, tentunya):

Harap perhatikan juga bahwa konfigurasi proxy balik tidak memerlukan aturan khusus untuk "/ statis".

Terima kasih atas pengakuannya. Menyetel minify ke false tidak menyelesaikan
masalah bagi saya.
Saya menggunakan ini pada instalasi jitsi pada instans AWS EC2, dan di sana
adalah server nginx yang digunakan untuk menghosting jitsi dan juga untuk memulai node
server untuk layanan etherpad pada mesin yang sama pada port 9001.

Apakah ini berarti saya mungkin perlu mengubah beberapa pengaturan nginx lainnya? (Bukan saya
memahami reverse proxy dengan benar, tetapi mungkinkah demikian?), Atau apakah saya
hanya perlu menunggu perbaikan tersedia.

Pada Kamis, 14 Mei 2020 pukul 6:07 muxator [email protected] menulis:

Kami memiliki berbagai masalah yang terjadi di sini.

1.

file konfigurasi Nginx pengujian memiliki pengalihan yang salah untuk / static. Itu
seluruh lokasi / bagian statis harus dihapus dari sini
https://github.com/ether/etherpad-lite/issues/3956#issuecomment-625163151 .
Dalam badai email yang diterima selama hari-hari ini, saya berpikir untuk mengingat bahwa apengguna mengeluh - memang - bahwa / static akan berbenturan dengan banyakaplikasi web lainnya . Mungkin dia disesatkan oleh contoh serupa
untuk yang satu ini;

Ini harus diperbaiki melalui dokumentasi (wiki?
Adakah yang lain di internet?) Dan meningkatkan kualitascontoh .
2.

4177b3f
https://github.com/ether/etherpad-lite/commit/4177b3f9434e8516f8fe4f8e02b2a75ce5d64173
memindahkan deklarasi font-face dari src / static / css / pad.css ke dua
file yang diimpor (src / static / css / pad / fonts.css dan
src / static / css / pad / toolbar.css) di direktori berbeda, dan URL di
src relatif terhadap jalur stylesheet
https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/src ;
3.

Selain itu, setelah menggabungkan 95fd5ce
https://github.com/ether/etherpad-lite/commit/95fd5ce2a45e31980ad8c2562e3fe6f77c52d4ff
untuk 1.8.4 yang akan datang, kami akan mengalami masalah cache staleness
itu juga perlu ditangani.

Saya melakukan beberapa tes dan mempersiapkan PR.

-
Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/ether/etherpad-lite/issues/3956#issuecomment-628317976 ,
atau berhenti berlangganan
https://github.com/notifications/unsubscribe-auth/AH7VXAS65ZUAR33CPKSI6OLRRM4KZANCNFSM4MSSRTRQ
.

@skramsa , @julpec , @lucaguindani , @ashishhari (dan John, tentunya):

Ok untuk saya uji. Saya tidak memiliki konfigurasi khusus untuk static .

Terima kasih atas pengakuannya. Menetapkan minify ke false tidak menyelesaikan masalah bagi saya.

Tapi hal ini bekerja untukku. Di bawah apache, saya beralih ke false dan semuanya mulai berfungsi dengan baik.

Saya bisa mengujinya.

Pada Kamis, 14 Mei 2020 pukul 13.30 julpec [email protected] menulis:

@skramsa https://github.com/skramsa , @julpec https://github.com/julpec ,
@lucaguindani https://github.com/lucaguindani , @ashishhari
https://github.com/ashishhari (dan John, tentunya): adalah salah satu dari Anda
dalam posisi menguji PR itu untuk melihat apakah itu berhasil untuk mereka? saya akan
seperti validasi independen, jika memungkinkan.

Ok untuk saya uji. Saya tidak memiliki konfigurasi khusus untuk statis.

Terima kasih atas pengakuannya. Menyetel minify ke false tidak menyelesaikan
masalah bagi saya.

Tapi hal ini bekerja untukku. Di bawah apache, saya beralih ke false dan segalanya
mulai bekerja dengan baik.

-
Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/ether/etherpad-lite/issues/3956#issuecomment-628464590 ,
atau berhenti berlangganan
https://github.com/notifications/unsubscribe-auth/AH7VXAXKTJKZCAZVRXZIJX3RROQLPANCNFSM4MSSRTRQ
.

Juga mengonfirmasi -> pengaturan minify ke false berfungsi dengan benar di sistem saya.
(Saya mungkin tidak memulai ulang layanan dengan benar terakhir kali).

Pada Kamis, 14 Mei 2020 pukul 13.30 julpec [email protected] menulis:

@skramsa https://github.com/skramsa , @julpec https://github.com/julpec ,
@lucaguindani https://github.com/lucaguindani , @ashishhari
https://github.com/ashishhari (dan John, tentunya): adalah salah satu dari Anda
dalam posisi menguji PR itu untuk melihat apakah itu berhasil untuk mereka? saya akan
seperti validasi independen, jika memungkinkan.

Ok untuk saya uji. Saya tidak memiliki konfigurasi khusus untuk statis.

Terima kasih atas pengakuannya. Menyetel minify ke false tidak menyelesaikan
masalah bagi saya.

Tapi hal ini bekerja untukku. Di bawah apache, saya beralih ke false dan segalanya
mulai bekerja dengan baik.

-
Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/ether/etherpad-lite/issues/3956#issuecomment-628464590 ,
atau berhenti berlangganan
https://github.com/notifications/unsubscribe-auth/AH7VXAXKTJKZCAZVRXZIJX3RROQLPANCNFSM4MSSRTRQ
.

Tapi hal ini bekerja untukku. Di bawah apache, saya beralih ke false dan semuanya mulai berfungsi dengan baik.
Juga mengonfirmasi -> pengaturan minify ke false berfungsi dengan benar di sistem saya.

@julpec , @ashishhari : pengaturan minify = false adalah solusi yang diketahui.
Harapannya sekarang adalah untuk melihat apakah # 4002 memperbaiki bug saat minify = true.

Prosedurnya adalah sebagai berikut, lakukan ini hanya jika semua langkah sudah jelas untuk Anda:

Mulailah mereplikasi bug:

  • pastikan minify = true dalam settings.json
  • mulai ulang Etherapd
  • kunjungi halaman Etherpad dan verifikasi bahwa ikon Toolbar tidak ditampilkan

Coba perbaikannya:

  • simpan minify = true di settings.json
  • terapkan # 4002 (lakukan hanya jika Anda merasa nyaman dengannya)
  • mulai ulang Etherpad
  • kunjungi halaman Etherpad dan verifikasi apakah ikon Toolbar sekarang ditampilkan dengan benar

Saya mau tapi saya tidak tahu prosedur untuk menerapkan PR :(

Terima kasih @muxator Saya akan menguji dalam satu jam.

Oh wow, saya tidak akan pernah menemukan perbaikan itu! Itu gila.

git remote add mux https://github.com/muxator/etherpad-lite/
git fetch mux
git checkout mux/fix/fonts-behind-reverse-proxy

Bagi mereka yang juga ingin menguji ..

setelah pengujian ingat untuk git checkout develop lain Anda akan di cabang basi muxs

terima kasih, saya akan menguji sore ini

Hrm Saya pikir ada sesuatu yang kurang baik @muxator .. Saya melihat ~ 54 permintaan, vs ~ 49 (saat ini develop ) - Perhatikan bahwa saya mengaktifkan plugin untuk memberikan permintaan tambahan. Jadi PR ini akan menjadi regresi kinerja pemuatan halaman untuk memenuhi kasus penggunaan yang tidak berdokumen / tidak didukung yang tidak dapat diterima IMHO.

image

Catat beberapa permintaan untuk file yang sama ... :( Ini tidak ada kemajuan tetapi beberapa permintaan untuk file yang sama bukanlah solusi yang kami cari.

berbagai permintaan berasal dari iframe berbeda menurut saya. Baik halaman utama dan editor iframe membutuhkan font, selalu seperti ini bukan?

afaik cleanCSS digunakan untuk memperbaiki masalah itu @seballot

selalu seperti ini, bukan?

Ya, selalu seperti ini.

Saya pikir cleanCss lebih untuk menghindari memuat setiap sebagian css (pad / popups.css, pad / editbar.css, pad / chat.css ...), dan sebaliknya memuat hanya satu pad.css

Namun menggunakan iframe, browser wajib meminta dua kali setiap berbagi file dengan iframe. Tetapi panggilan kedua harus menggunakan cache lokal ("diambil dari cache")

Saya menerapkan permintaan tarik dan berfungsi tanpa masalah (dengan apache)

Terima kasih @julpec.

Malam ini saya akan mencoba menangani # permintaan yang dikhawatirkan @JohnMcLear . Jika tidak ada yang terjadi, saya akan menggabungkan PR.

Tnx mux yang mengagumkan

Apakah ada cara untuk mengupload file HAR di suatu tempat di Github? Saya telah menguji # 4002 dan saya bersedia membagikan rekamannya, tetapi saya tidak tahu di mana harus mengunggahnya.

Elemen umum:

  • mengunjungi http: // localhost : 9001 / p / ciao
  • tidak ada proxy terbalik
  • mode produksi: false
  • mulai dengan cache browser kosong

Variabel:

  • versi: 4816785aef45 vs # 4002
  • cache: dingin ( beban pertama ) vs panas (> = beban kedua )
  • perkecil: benar vs salah
  • browser: chromium 81 vs firefox 76

Ini adalah empat variabel biner -> 2 ^ 4 = 16 kemungkinan .
Ini memakan banyak waktu!

Berikut kasus yang lebih relevan:
| Deskripsi | pengembangan saat ini (4816785aef45) | PR # 4002 |
| ---- | ---- | ---- |
| Firefox, diminimalkan, pemuatan pertama | 34 permintaan
1,61 MB
1,61 MB ditransfer | 36 permintaan
1,61 MB
1,53 MB ditransfer |
| Firefox, minified, hot cache | 29 permintaan
1,12 MB
216 KB ditransfer | 31 permintaan
1,18 MB
216 KB ditransfer |
| Chromium, diminimalkan, pemuatan pertama | 44 permintaan
2,0 MB
1,5 MB ditransfer | 109 richieste
3,0 MB
1,1 MB ditransfer |
| Chromium, minified, hot cache | 45 permintaan
2,2 MB
5,7 KB ditransfer | 129 permintaan
4,7 MB
4,7 KB ditransfer |

Intinya adalah:

  • Chrome dan Firefox memiliki cara yang sangat berbeda untuk mengukur lalu lintas mereka
  • PR # 4002 memperkenalkan lebih banyak permintaan ke server
  • Rasio cache hit meningkat : kolom yang ditransfer berkurang!
  • Waktu muat tetap sama, dalam batas kebisingan pengukuran

Ini adalah temuan saya juga, saya juga meluangkan waktu untuk meneliti alat profil kinerja kecepatan pemuatan halaman (di luar alat pengembang) dan memutuskan bahwa jika alat pengembang tidak memberi saya penyimpangan yang signifikan dari rata-rata maka hasilnya cukup cocok untuk aplikasi kita.

Penurunan ukuran transfer total jelas merupakan hal yang baik, tetapi overhead permintaan http dapat menjadi mahal karena latensi. Kita dapat menggabungkan ini tetapi perlu diingat bahwa ketika kita menulis ulang front end (yang terasa tidak terhindarkan karena semua inline JS yang pada akhirnya perlu digeser) maka ini adalah area yang harus kita perbaiki.

Semua hal mengatakan, Etherpad sangat bagus dibandingkan dengan kebanyakan orang lain di bidang htis, kecuali Google Docs yang merupakan standar emas untuk "waktu untuk mengedit" yang sangat cepat dan sangat cepat yang di dunia ini adalah raja, bukan akhir dari 'pemuatan' halaman.

Jadi TLDR; Gabungkan @muxator - utas ini ada sebagai sumber daya bagi mereka yang ingin mengoptimalkan instans Etherpad BUKAN di subfolder.

kerja bagus !

+1 tnx!

: +1:

Apakah halaman ini membantu?
0 / 5 - 0 peringkat