我正在打包一个 Horizon 插件。我有一堆模板,一个视图,以及css,js文件和图像。
所有内容都应包含在内,以便包装是.deb或压缩包。所以现在我把所有文件都保存在/opt/stack/horizon/openstack_dashboard/dashboards/<my-dashboard-name>
.
我的问题是,如何正确包含 js 和 css 文件?/opt/stack/horizon/openstack_dashboard/settings.py
文件指定HORIZON_CONFIG.js_files
,但它始终为空!我在那里放了一个文件列表,它在模板中仍然显示为空。所以问题是,如何在 Horizon 仪表板插件中包含 js 和 css 文件,以便将其打包到单个压缩包或.deb包中?
您应该将静态文件存储在 <my-dashboard-name>/static
下面。最好为您的静态文件命名,我使用以下目录结构: <my-dashboard-name>/static/<my-dashboard-name>/js
等等css
和img
然后我用 /static/<my-dashboard-name>/js/jsfile.js
引用 HTML 模板中的文件,这样您就不会有任何名称冲突。
当有人使用您的插件时,他们会提取您的仪表板并将其注册到正确的位置,然后他们还必须从基本openstack_dashboard目录运行 collectstatic
django 管理命令(在您的情况下/opt/stack/horizon/
),要么:
$ ./run_tests.sh -m collectstatic
或
$ ./manage.py collectstatic
这应该根据站点的配置方式将您的静态文件复制到正确的位置。