【发布时间】:2021-12-30 21:32:16
【问题描述】:
大家好,我一直在做一个相当大的项目,当我的项目被分成很多文件夹时,将所有 CSS 文件放在一个文件夹中真的很麻烦:
-- assets # folder
-- components # folder
-- Header # folder
-- Buttons.py
-- Title.py
-- DateDropdown.py
-- Body # folder
-- Pages # folder
-- page1.py
-- page2.py
-- SideNavBar # folder
-- Footer # folder
-- app.py
它不断地延伸到不同的组件,现在我正在寻找一种解决方案,比如我们在反应中使用 CSS 的方式,将使用它的文件的 CSS 放在同一个文件夹中导入 CSS,然后使用它.或者为每个大组件(如页眉、页脚、侧边导航栏等)打开一个资产文件夹...
感谢您抽出宝贵时间阅读!如果您有任何想法,请务必分享!
示例:(更新) 我有一个这样的文件夹树:
-- mainDash.py # the app is initiated here
-- app.py # The app layout is initiated here
-- components # Folder
-- header.css
-- Header.py # The header HTML
头部python的代码:
import dash_html_components as html
header = html.Div(
id='Header',
children=[
html.Link(
rel='stylesheet',
href='/components/header.css'
),
html.Div("Medical Cost Personal")
]
)
头部CSS代码:
#header {
flex: 1;
color: #fff;
font-size: 3vw;
display: flex;
justify-content: center;
align-items: center;
}
应用启动代码:
import dash
external_stylesheets = ['/components/header.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
试过 external_stylesheets 方式和 HTML 链接方式都不知道为什么?
【问题讨论】:
-
因为你错过了第二步:路由。请参阅下面的答案/cmets。
-
@EricLavault 我仍然不知道如何使用它我应该有一个名为 res 的文件夹并将
切换到文件的路径吗?我应该如何使用此路由将我拥有的所有 CSS 文件添加到列表中? -
否,
/res/<path:filepath>匹配以/res/开头的request 路径(相对于应用程序基本url),例如/res/any/component/you/want.css,所以当路由回调是调用时,它接收(在本例中)参数 filepath=any/component/you/want.css,然后返回flask.send_from_directory('./', filepath),字面意思是发送文件any/component/you/want.css相对于目录的内容。'./' (the cwd of your app), notres/`。同样,“res/”只是一个路由选项,不是强制性的,用于确保您的回调仅处理 res/ources 请求。
标签: python css plotly plotly-dash plotly-python