0

我正在打包一个 Horizo​​n 插件。我有一堆模板、一个视图,以及 css、js 文件和图像。

应包含所有内容,以便包是 .deb 或 tarball。所以现在我将所有文件保存在/opt/stack/horizon/openstack_dashboard/dashboards/<my-dashboard-name>.

我的问题是,如何正确包含 js 和 css 文件?有/opt/stack/horizon/openstack_dashboard/settings.py指定的文件HORIZON_CONFIG.js_files,但它总是空的!我在那里放了一个文件列表,它在模板中仍然是空的。所以问题是,我如何在 Horizo​​n 仪表板插件中包含 js 和 css 文件,以便将其打包到单个 tarball 或 .deb 包中?

4

1 回答 1

3

您应该在下面存储静态文件<my-dashboard-name>/static。最好给你的静态文件命名,我使用以下目录结构: <my-dashboard-name>/static/<my-dashboard-name>/js等等,css然后img我用 引用 HTML 模板中的文件/static/<my-dashboard-name>/js/jsfile.js,这样你就不会遇到任何名称冲突。

当有人使用您的插件时,他们会提取您的仪表板并将其注册在正确的位置,然后他们还必须collectstatic从基本的 openstack_dashboard 目录(在您的情况下/opt/stack/horizon/)运行 django 管理命令,或者:

$ ./run_tests.sh -m collectstatic

或者

$ ./manage.py collectstatic

这应该根据站点的配置方式将您的静态文件复制到正确的位置。

于 2015-01-20T13:19:57.230 回答