jstree 和 Rails 资产管道

jstree and Rails asset pipeline

我正在使用 jstree (https://www.jstree.com/) jQuery 库。在开发中工作正常,但在生产中所有标准背景 CSS 中断。 css 从 /app-assets/32px.png 等调用背景图标。这些文件在我的 /app/assets/images 中,甚至将它们添加到我的预编译中,但其中 none 加载(抛出 404 错误).

我怀疑问题是我部署到生产环境 Rails 正在预编译图像,当 jstree css 调用 url("32px.png") 服务器调用 /app-assets/32px.png 时总是会失败,因为服务器需要 /app-assets/32px-xxxxxxxxxxxxxxxx.png 预编译资产管道 url.

我可以手动转储 public 文件夹中的图标文件并破解 css 但 JS 似乎仍会触发旧路径的代码。我可以让 JS 树引用 Rails 资产管道 url 吗?

最终成为 CSS,它要求背景为 url("32px.png"),在 Rails 世界中,相对于预编译的 CSS在 /assets/...

我将我的 jstree 图像放在静态 /public 文件夹中,然后将 CSS 更改为 url("/32px.png") 以便 jstree 从根目录绝对加载它们。

有一个选项可以使用 image-url("32px.png") 但是 jstree JS 在尝试加载图像时失败了,因为它仍然试图加载相对路径,我看到了一些图像文件的双重加载等。我放弃了,选择了第一个解决方案。

希望这对以后的人有所帮助。