使用 Tailwind 在 Rails 上的面包屑导航
Breadcrumbs on Rails with Tailwind
我正在尝试编写一个自定义生成器以与 Breadcrumbs on Rails 一起使用。我正在为我的样式使用 Tailwind,但它似乎不能很好地与 Rails 生成的代码一起使用。
我有以下生成器:
class TailwindBreadcrumbsBuilder < BreadcrumbsOnRails::Breadcrumbs::Builder
def render
@context.content_tag(:nav, class: 'flex py-3 px-5 text-slate-700 bg-slate-50 rounded-lg border border-slate-200', aria: { label: 'Breadcrumb' }) do
@context.content_tag(:ol, class: 'inline-flex items-center space-x-1 md:space-x-3') do
@elements.collect do |element|
render_element(element)
end.join.html_safe
end
end
end
def render_element(element)
current = @context.current_page?(compute_path(element))
aria = current ? { aria: { current: 'page' } } : {}
@context.content_tag(:li, aria) do
@context.content_tag(:div, class: 'flex items-center') do
link_or_text = @context.link_to_unless_current(compute_name(element), compute_path(element), element.options.merge(class: 'ml-1 text-sm font-medium text-slate-700 hover:text-white md:ml-2'))
divider = @context.content_tag(:span, (@options[:separator] || '>').html_safe, class: 'divider') unless current
link_or_text + (divider || '')
end
end
end
end
然后我用以下代码初始化页面上的面包屑:
<%= render_breadcrumbs builder: ::TailwindBreadcrumbsBuilder %>
但是,并非所有样式都被应用(例如,悬停时的白色文本不起作用)。
我怀疑 Tailwind 服务器不会编译这些 类,因为它们是 Ruby 生成的。知道如何让这个构建器与 Tailwind 一起工作吗?
提前致谢
如果您使用的是 Tailwind v3,类 默认情况下会被“清除”。
因为这是一个 ruby 助手,我假设这个特定文件没有添加到 tailwind.config.js
中的 content
列表中。
也许尝试在您的配置文件中添加类似这样的内容:
module.exports = {
content: [
"./app/views/**/*.html.erb",
"./app/helpers/**/*.rb",
"./app/javascript/**/*.js",
"path/to/your/file.rb"
],
// ... your other configs
}
希望对您有所帮助!
我正在尝试编写一个自定义生成器以与 Breadcrumbs on Rails 一起使用。我正在为我的样式使用 Tailwind,但它似乎不能很好地与 Rails 生成的代码一起使用。
我有以下生成器:
class TailwindBreadcrumbsBuilder < BreadcrumbsOnRails::Breadcrumbs::Builder
def render
@context.content_tag(:nav, class: 'flex py-3 px-5 text-slate-700 bg-slate-50 rounded-lg border border-slate-200', aria: { label: 'Breadcrumb' }) do
@context.content_tag(:ol, class: 'inline-flex items-center space-x-1 md:space-x-3') do
@elements.collect do |element|
render_element(element)
end.join.html_safe
end
end
end
def render_element(element)
current = @context.current_page?(compute_path(element))
aria = current ? { aria: { current: 'page' } } : {}
@context.content_tag(:li, aria) do
@context.content_tag(:div, class: 'flex items-center') do
link_or_text = @context.link_to_unless_current(compute_name(element), compute_path(element), element.options.merge(class: 'ml-1 text-sm font-medium text-slate-700 hover:text-white md:ml-2'))
divider = @context.content_tag(:span, (@options[:separator] || '>').html_safe, class: 'divider') unless current
link_or_text + (divider || '')
end
end
end
end
然后我用以下代码初始化页面上的面包屑:
<%= render_breadcrumbs builder: ::TailwindBreadcrumbsBuilder %>
但是,并非所有样式都被应用(例如,悬停时的白色文本不起作用)。
我怀疑 Tailwind 服务器不会编译这些 类,因为它们是 Ruby 生成的。知道如何让这个构建器与 Tailwind 一起工作吗?
提前致谢
如果您使用的是 Tailwind v3,类 默认情况下会被“清除”。
因为这是一个 ruby 助手,我假设这个特定文件没有添加到 tailwind.config.js
中的 content
列表中。
也许尝试在您的配置文件中添加类似这样的内容:
module.exports = {
content: [
"./app/views/**/*.html.erb",
"./app/helpers/**/*.rb",
"./app/javascript/**/*.js",
"path/to/your/file.rb"
],
// ... your other configs
}
希望对您有所帮助!