我有一个使用Chestnut创建的应用程序,项目中有一张图片,位置在:resources/public/img.png。
我想在我的应用程序中使用这个图片,但是使用[:img {:src "public/img.png"}]
或[:img {:src "./img.png"}]
无法正常工作。资源文件夹中图片的正确src
是什么?
我有一个使用Chestnut创建的应用程序,项目中有一张图片,位置在:resources/public/img.png。
我想在我的应用程序中使用这个图片,但是使用[:img {:src "public/img.png"}]
或[:img {:src "./img.png"}]
无法正常工作。资源文件夹中图片的正确src
是什么?
resources/public
是隐式的。您需要像这样访问文件:(ns demo.core
(:require [clojure.java.io :as io]))
; something like this
(slurp (io/resource "img.png")) ; returns bytes from file
(io/stream (io/resource "img.png")) ; returns in InputStream for file
(ns tst.demo.core
(:use tupelo.core tupelo.test)
(:require [clojure.java.io :as io]))
(dotest
(let [bytes (slurp (io/resource "sample.json"))]
(spyx (count bytes))))
带有结果
(count bytes) => 72
前往您的project.clj文件,并搜索figwheel设置。确保取消注释:http-server-root。
:figwheel {
:http-server-root "public" ;; serve static assets from resources/public/
...
}
[:img {:src "img.png" }]
应该可以工作了。并且不要忘记重新启动figwheel。
resources/public
目录下的所有内容包含在类路径中,因此io/resource
可以找到它。如果您有第二个运行在5000端口上的服务器,则需要自己复制这个行为。 - Alan Thompson