欢迎 Link 横幅

我正在进行一些测试(持续了好几个月……别问)。

回来后,我发现自更新以来,欢迎条似乎只在用户注销时显示。

有没有办法让这个条对所有人都显示——无论登录状态如何?

谢谢

Martyn

1 个赞

我刚测试了一下,没发现这个问题,你是不是通过点击角落的 x 按钮关闭了横幅?如果是这样,你需要清除浏览器的 localStorage 才能再次看到它。

3 个赞

好主意 - 我会看看的
谢谢

尝试清除本地存储 - 尝试清除浏览器数据 - 在 Edge 上尝试(我将花费数周时间来清除自己!)……仍然没有成功 :frowning:

您是如何配置 max trust levelhide for staff 设置的?\n您是否尝试使用为测试创建的新用户?

3 个赞

我想为注册用户和未注册用户显示不同的横幅,或者不向未注册用户显示横幅的所有链接。这可能吗?

1 个赞

@Aurora
一种方法是为登录用户创建链接,为未登录用户遵循链接(按顺序,因此您有两组链接)。
然后,使用一些 CSS,您可以隐藏一个组或另一个组。
有一个您可以使用的 CSS anon 类。

例如,假设您有两个登录用户的链接和三个未登录用户的链接:

  • 登录链接 1
  • 登录链接 2
  • 未登录链接 1
  • 未登录链接 2
  • 未登录链接 3

在 CSS 中,您可以这样做:

/* 未登录用户:隐藏前两个链接 */
html.anon .featured-banner-link > div:nth-child(-n+2) {
    display: none !important;
}

/* 登录用户:隐藏最后三个链接 */
html:not(.anon) .featured-banner-link > div:nth-last-child(-n+3) {
    display: none !important;
}

这会起作用吗?

5 个赞

可以!非常感谢!这真的很有帮助!

3 个赞

在链接区域的图标字段中,是否可以自动完成,以便更容易找到想要的图标?

如果不行,至少包含一个指向 FontAwesome 网站的直接链接,这样可以更清楚地表明它是图标提供商,同时也能直接引导用户到源。

例如,我下载并安装了该组件,然后在创建链接时,我不得不回到这个主题再次阅读,才知道它是 FontAwesome。这只是一个让添加图标更快更容易的建议。

编辑:我使用了他们网站上的名称,但它没有添加图标:

例如这个:

image

看起来是免费的:

那么我们应该使用哪些呢?

我还注意到此主题中的摘要存在问题。它说 Welcome Link Banner 是一个简单的横幅,允许您添加自定义文本和 1-4 个链接,但实际上它允许我添加更多链接。我能够添加 6 个(如果我继续点击,它会不断添加更多链接)。

如果 4 个确实是目标,那么我认为最好在添加第 4 个链接后,“+ banner link”消失或变为灰色。

1 个赞

我同意这会很方便。但这不仅仅是针对这个TC,TC中有些输入类型在核心/插件中是不可用的。

我会看看我是否能提交一个PR来改进描述。

您可能还需要将Discourse默认未包含的图标添加到 svg_icons 设置中。

这应该是您的问题。

是的,您可以添加任意数量的链接。没有限制。
这暗示它最适合与1-4个链接配合使用。

2 个赞

谢谢

哦,我不知道它没有加载所有可用的图标。我以为它是直接从 FA 网站读取的。我添加了一个未加载的图标,现在它可见了。非常感谢。
我怎样才能看到哪些是可用的?有列表吗,还是像添加然后看看它是否不显示,然后添加一样?

我明白了。我想是措辞的问题。也许可以这样说:
欢迎链接横幅是一个简单的横幅,允许您添加自定义文本和链接(推荐:最多 4 个链接)。 或者类似的话。

非常感谢您的帮助。很高兴图标现在可见了! :slight_smile:

2 个赞

是的,那将是最简单的方法。

2 个赞

更新“欢迎链接横幅”主题导致 SCSS 编译错误并导致网站崩溃

您好,

最近在我的 Discourse 论坛上更新**“欢迎链接横幅”**主题时,我遇到了一个严重的问题。

:stop_sign: 问题摘要:

  • 更新主题后,网站立即崩溃。
  • 安全模式 (/safe-mode) 也无法访问。
  • 记录的错误是:
CssSyntaxError: common.scss 中缺少分号 (MiniRacer::RuntimeError)
  • 此 SCSS 错误阻止 Discourse 编译资源,导致前端完全失败。

:magnifying_glass_tilted_left: 根本原因:

  • “欢迎链接横幅”主题内的更新后的 common.scss 文件存在语法错误(缺少 ; 分号)。
  • 因此,资源编译中断,Discourse 甚至无法提供基本的用户界面。

:hammer_and_wrench: 我是如何解决的:

由于我无法访问 Web 界面(甚至安全模式),我不得不手动修复:

  1. SSH 登录到服务器。

  2. 进入应用程序容器:

    ./launcher enter app
    
  3. 打开 Rails 控制台:

    RAILS_ENV=production rails c
    
  4. 禁用有问题的the theme:

    Theme.where(name: "Welcome Link Banner").update_all(enabled: false)
    
  5. 退出 Rails 控制台。

  6. 清除所有编译的资源:

    RAILS_ENV=production rake assets:clobber
    
  7. 重新构建应用程序:

    ./launcher rebuild app
    

完成这些步骤后,论坛恢复在线。


:light_bulb: 建议:

  • 也许可以在上传/更新主题时,在将主题应用于生产站点之前,添加额外的 SCSS 语法检查。
  • 这可以帮助避免因轻微的 CSS 错误导致的全站崩溃。
1 个赞

这很奇怪。此组件的 CSS 中没有缺少分号。
我也没在历史记录中看到任何更改。:thinking:

顺便说一句,如果 /safe-mode 不起作用,您可以尝试直接在 URL 后面添加 ?safe_mode=no_themes

3 个赞

我也检查过了,没有发现这个问题,是组件被自定义过,还是更新过程中出了什么问题?

1 个赞

可能与我正在开发的另一个组件发生冲突

2 个赞
  1. 我已关闭横幅,但我需要测试一些内容,因此需要将其重新显示。如何操作?
  2. 我注意到,至少在移动设备上,当我处于“频道”页面时,横幅会完全破坏整个布局:
  1. 是否可以排除横幅在某些页面上的显示,而不是使用 CSS?我知道有一个下拉菜单,其中包含 homepage,discovery,all,但这太有限了。

我认为清除缓存可能会有帮助,因为它存储在 localStorage 中:

我做到了:

但它没有奏效。我正在使用 Cloudflare,并且遇到过他们的缓存问题。我应该再等一会儿,还是因为它是 localstorage,所以这无关紧要?

我在这方面不是专家。只是猜测……

有没有办法通过开发者工具窗口删除它?我记得以前在处理一个我正在开发的网站时,在那里删除了一些东西。

更新:我根据您的回复让 ChatGPT 帮助了我,得到了以下信息:

清除浏览器缓存不会影响 localStorage,因为“已忽略”状态存储在那里。您需要手动从 localStorage 中删除该项。

执行此操作:

  1. 打开 Discourse 网站。

  2. F12 或右键单击 → 检查 打开开发者工具。

  3. 转到 Console 选项卡。

  4. 粘贴以下内容并按 Enter:

    localStorage.removeItem("discourse_dismissedWelcomeLinkBanner");
    
  5. 刷新页面。

这将重置“已忽略”状态,并且“欢迎横幅链接”应该会再次出现。


然后我问是否也可以手动完成,是的,我可以,方法是转到 Application 选项卡,然后在侧边栏中转到 Storage > Localstorage 并删除“条目”:

image


感谢您指明了正确的方向!

那么我的问题是:如果这是我在桌面上的操作方法,如何在手机上进行操作?ChatGPT 说我可以将其添加到地址栏并“运行”它,但没有帮助:

javascript:localStorage.removeItem("discourse_dismissedWelcomeLinkBanner");

编辑:它奏效了!我之前操作错了。ChatGPT 现在明确表示我需要在打开论坛后,在同一个标签页中运行 javascript:localStorage.removeItem("discourse_dismissedWelcomeLinkBanner");,而不是在新标签页中运行,而我之前就是这么做的。

再次感谢您的回复,因为它确实帮助我缩小了范围。:raising_hands:

1 个赞