mirror of
https://codeberg.org/postscriptum/gemlog.git
synced 2026-02-19 06:22:41 +00:00
add http notes
This commit is contained in:
parent
b3cee47965
commit
70fa43a941
1 changed files with 34 additions and 0 deletions
|
|
@ -195,6 +195,40 @@ $: portFragment =
|
||||||
```
|
```
|
||||||
* через що може не працювати внутрішня навігація по сідам а також приклади команд типу `git clone`, виключаючи з URL не типовий для HTTP/80 порт (`8788`) якщо той використовується
|
* через що може не працювати внутрішня навігація по сідам а також приклади команд типу `git clone`, виключаючи з URL не типовий для HTTP/80 порт (`8788`) якщо той використовується
|
||||||
|
|
||||||
|
### Зауваження щодо HTTP
|
||||||
|
|
||||||
|
Якщо відкрити Веб-інтерфейс Radicle на віддаленому (не `localhost`) сервері з протоколом HTTP, то при копіюванні адрес репозиторію до буферу - в консолі браузера буде помилка:
|
||||||
|
|
||||||
|
> Uncaught (in promise) TypeError: can't access property "writeText", navigator.clipboard is undefined
|
||||||
|
|
||||||
|
Вона означає, що сучасна політика браузера блокує функціональність буферу копіювання для не захищеного протоколу HTTP, за виключенням `localhost` або при ручному додаванні такого виключення через `about:config`. Звісно, для продакшну це не варіант, бо переважна більшість користувачів через захищену природу оверлейних мереж, не користуються HTTPs і вважають таке явище - швидше не правильно налаштованим Nginx, аніж фічею.
|
||||||
|
|
||||||
|
Отже, якщо не плануєте "силою" заганяти юзерів на HTTPs (з само-підписаним сертифікатом) то рішення я знайшов тільки у застосуванні патчу `src/lib/utils.ts`, із заміною його функції `toClipboard` на "legacy-fallback" через `copyToClipboard`:
|
||||||
|
|
||||||
|
``` src/lib/utils.ts
|
||||||
|
async function copyToClipboard(text: string) {
|
||||||
|
if (navigator.clipboard && window.isSecureContext) {
|
||||||
|
await navigator.clipboard.writeText(text);
|
||||||
|
} else {
|
||||||
|
const textArea = document.createElement("textarea");
|
||||||
|
textArea.value = text;
|
||||||
|
document.body.appendChild(textArea);
|
||||||
|
textArea.focus();
|
||||||
|
textArea.select();
|
||||||
|
try {
|
||||||
|
document.execCommand('copy');
|
||||||
|
} catch (err) {
|
||||||
|
console.error('Unable to copy', err);
|
||||||
|
}
|
||||||
|
document.body.removeChild(textArea);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
export async function toClipboard(text: string): Promise<void> {
|
||||||
|
await copyToClipboard(text);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
* Firefox 148 - все ще підтримує `document.execCommand('copy')`
|
||||||
|
|
||||||
### Компіляція
|
### Компіляція
|
||||||
|
|
||||||
Після завершення конфігурації, на локальній машині збираємо оптимізовану статику і для зручності передачі на сервер, запаковуємо вміст `build` до архіву `radicle-explorer.tar.gz`:
|
Після завершення конфігурації, на локальній машині збираємо оптимізовану статику і для зручності передачі на сервер, запаковуємо вміст `build` до архіву `radicle-explorer.tar.gz`:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue