内联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 每次都会自动下载该文件。他技术上很精通,但我无法保证他的技能或经验,他已经尝试过这个:

使用“iframe.pdf-preview { display: none!important; }”在客户端覆盖 CSS 会隐藏“预览”,但 Firefox 仍然会下载 blob。

显而易见的答案是更改浏览器设置,让 Firefox 预览文件,但这并不是我的职责,至少在尝试寻找其他解决方案之前,不应该告诉别人如何维护自己的在线安全配置文件。有什么想法吗?

1 个赞

您可以创建一个用户可选择的另一个主题,并且不在该主题中包含主题组件。用户需要从他们的个人资料中选择主题。

4 个赞

这是一个有趣的变通方法,但可能有点“把孩子和洗澡水一起倒掉”。 :slightly_smiling_face:

他们可以选择使用 Redditish 主题。几乎每个人似乎都想保持熟悉。我会记住的。

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 源管理员设置。

1 个赞

我已经将 cdn.my_site 添加到 CORS 来源。

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

或者您的意思是其他东西!

3 个赞

那就是我的意思。如果那没有为您解决问题,那么您将需要进一步排查。这个主题有一些讨论,请搜索一下并告诉我们进展如何!然后我们可以更新第一篇帖子并提供解决方案。

3 个赞

我确实修复了它,但差点儿疯掉。

我做了大量的“重建应用程序”,甚至重装了 Ubuntu 本身。不确定到底是什么问题。在这个过程中,我修复了将资产上传到 AWS S3 的问题。

然后我继续尝试用同一个 PDF 在同一个主题上:angry: :angry:,但没有解决方案。

最后我放弃了,后来将 PDF 上传到其他主题,它就工作了。

1 个赞