我认为问题不在于您包含样式的方式,而是样式本身(不同版本)。
似乎与the Bootswatch v5.0.1 stylesheet you linked 和一些破折号引导组件(平坦)样式不兼容。
让我们看看 dash 引导组件可用的样式:
import dash_bootstrap_components as dbc
# Find themes available through dash_bootstrap_components
print(dir(dbc.themes)) # ['BOOTSTRAP', 'CERULEAN', 'COSMO', 'CYBORG', 'DARKLY', 'FLATLY', 'GRID', 'JOURNAL', 'LITERA', 'LUMEN', 'LUX', 'MATERIA', 'MINTY', 'PULSE', 'SANDSTONE', 'SIMPLEX', 'SKETCHY', 'SLATE', 'SOLAR', 'SPACELAB', 'SUPERHERO', 'UNITED', 'YETI', '_BOOTSWATCH_BASE', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']
# Find FLATLY theme url
print(dbc.themes.FLATLY) # https://stackpath.bootstrapcdn.com/bootswatch/4.5.2/flatly/bootstrap.min.css
app = Dash(__name__, external_stylesheets=[dbc.themes.FLATLY])
所以 dash bootstrap 组件版本 0.12.0 可以与 bootswatch flatly 版本 4.5.2 一起使用(很可能还有其他版本,但我只测试了这些版本)。
我比较了5.0.1 和4.5.2 样式之间的差异,发现5.0.1 版本没有任何.card-deck 样式,但4.5.2 版本有,这就解释了CardDeck 组件看起来不正确。
我建议您只使用dbc.themes.FLATLY 主题以确保与引导仪表板组件的兼容性并根据需要添加额外的样式。
重申问题不是由使用assets 目录中的本地样式表而不是external_stylesheets 引起的。这两种方法都有效。选择您喜欢的任何方法。