Встроенные предпросмотры PDF

Это плагин или компонент?

Мне не удалось добиться желаемого поведения с помощью компонента.

3 лайка

Вы можете понять, что это плагин, посмотрев репозиторий на GitHub. Если там есть файл .rb, значит это плагин :slight_smile:

3 лайка

Я понимаю. Но с iPad и Hub гораздо проще задать вопрос, чем прыгать туда-сюда и затем просматривать GitHub. Однако главная причина не в чистой лени (на этот раз…), а в том, что на iPad заканчивается память, и операционная система закрывает DiscourseHub.

Но, конечно, указание на трюк с .rb в целом более информативный и полезный способ.

Я мог бы довериться @Thoka, когда он в начале сказал, что это плагин, но по какой-то действительно странной причине я не поверил.

1 лайк

Требуется ли компонент темы или работает без него?

1 лайк

Вам не нужна тема. Она работает и без неё. Также нет никаких настроек. После установки каждый PDF-файл будет доступен для чтения прямо в браузере.

2 лайка

Круто, спасибо! И спасибо за создание этого нового плагина. :vulcan_salute::smiling_face_with_sunglasses::+1:

2 лайка

@thoka Чудесно!!! Огромное спасибо!!! :derek_pointing: :bouquet: :sparkling_heart:

3 лайка

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

Один из участников нашего форума придерживается крайне осторожного подхода к работе в интернете. Он использует Firefox с изменённой настройкой поведения приложения, чтобы загружать PDF-файлы вместо их отображения в браузере.

Когда он открывает конкретную тему, где ранее был загружен PDF-файл, Firefox автоматически скачивает файл каждый раз. Он технически грамотен, хотя я не могу поручиться за его навыки или опыт, и уже попробовал следующее:

Переопределение CSS на стороне клиента с помощью «iframe.pdf-preview { display: none!important; }» скрывает «превью», но Firefox всё равно загружает файл.

Очевидный ответ — изменить настройку браузера на просмотр файла в Firefox, но не моя дело указывать другим, как поддерживать свой профиль безопасности в интернете, по крайней мере, пока не будет найдено другое решение. Есть какие-либо идеи?

1 лайк

Вы можете создать другую тему, которую пользователь сможет выбрать, и не включать компонент темы в эту тему. Пользователю нужно будет выбрать тему в своём профиле.

4 лайка

Это интересный обходной путь, но, возможно, несколько «выплескивать ребенка вместе с водой из ванны». :slightly_smiling_face:

У них есть выбор использовать тему, похожую на Reddit. Почти все, кажется, хотят остаться с привычным. Я буду иметь это в виду.

1 лайк

Вы имеете дело с пользователем, который намеренно ломает ваш сайт, а затем жалуется на это. Если он не хочет встроенных PDF-файлов, то как предоставление ему возможности не использовать их может быть «выплескиванием ребёнка вместе с водой из ванны»?

2 лайка

Он жалуется на повторяющуюся загрузку PDF-файла, которая является следствием его выбора настроек предпочитаемого браузера. Исходя из принципа «нельзя угодить всем людям все время», ему придется с этим смириться.

Ничто из того, что он делает, не сломает сайт для других пользователей. Если он найдет способ заставить что-то работать для себя, я назову это легитимным хаком.

3 лайка

Привет,

Есть ли какие-то новости насчёт новой вкладки?

Спасибо.

1 лайк

Мы используем Discourse send PDF inline для чтения загруженных локально PDF-файлов в браузере.

5 лайков

Привет
Это мой предпросмотр PDF-файла

Вот ошибки консоли:

Блокировка запроса с перекрёстным источником: политика одинакового источника запрещает чтение удалённого ресурса по адресу https://cdn.my_site.com/original/1X/0d281938d3ff2377541704cab6ba1c4408420733.pdf. (Причина: заголовок CORS «Access-Control-Allow-Origin» отсутствует). Код состояния: 200.

Проблема в том, что изображение работает на 100%:
https://cdn.my_site.com/optimized/1X/b8e363026da621558d8c2a8159a4a7671eaf0285_2_1035x685.jpeg

А вот ссылка на PDF с неработающим предпросмотром:
https://my_site.com/uploads/short-url/1So7iQsrmIZKLQ6UGI86B1cOqD9.pdf

Я использую CloudFront в качестве CDN.

Вот настройки S3:

S3 моего сайта 
[
   {
       "AllowedHeaders": [
           "*"
       ],
       "AllowedMethods": [
           "GET"
       ],
       "AllowedOrigins": [
           "http://my_site.com",
           "https://my-test-site.site",    # мой тестовый сайт использует то же хранилище.
           "https://cdn.my_site.com",
           "https://URL.cloudfront.net"
       ],
       "ExposeHeaders": [
           "Access-Control-Allow-Origin"
       ]
   }
]

Я что-то упускаю здесь…

1 лайк

Посмотрите на настройку администратора CORS origin.

1 лайк

Я добавил cdn.my_site в список разрешённых CORS-источников:

/admin/site_settings/category/all_results?filter=cors origin

Или вы имели в виду что-то другое!

3 лайка

Именно это я и имел в виду. Если это не помогло вам, значит, нужно копать глубже. В этой теме есть обсуждение — поищите его и сообщите нам, как у вас получится! Тогда мы сможем обновить первый пост с решением.

3 лайка

Я всё-таки исправил это, но чуть не свихнулся.

Я многократно «пересобирал приложение» и даже переустановил сам Ubuntu. Не уверен, в чём была проблема. В процессе мне удалось исправить загрузку файлов в AWS S3.

Затем я продолжал пытаться загрузить тот же PDF в ту же тему :angry: :angry:, но безрезультатно.

В конце концов я сдался, а позже загрузил PDF в другую тему, и всё заработало.

1 лайк