如何在Chestnut创建的re-frame/re-agent应用中引用resources内图片?
解决Chestnut项目中图片引用路径问题
我来帮你搞定这个图片路径的问题!在Chestnut框架里,静态资源的目录规则是关键:
- Chestnut默认把
resources/public文件夹作为静态资源的根目录,服务器会自动将这个目录下的文件映射到网站的根路径(也就是/)。 - 你的图片放在
resources/public/img.png,对应的访问路径就是根路径下的/img.png,不需要加public或者相对路径前缀。
所以正确的Hiccup代码应该是:
[:img {:src "/img.png"}]
为什么之前的路径无效?
[:img {:src "public/img.png"}]:这个写法会让浏览器去网站根目录下找public文件夹里的img.png,但你的public已经被映射成根了,实际访问路径会变成/public/public/img.png,自然找不到文件。[:img {:src "./img.png"}]:这是相对路径,它的实际指向会根据当前页面的URL变化。比如如果你的页面路由是/posts/detail,相对路径会指向/posts/img.png,同样找不到资源。用绝对路径/img.png就不会有这个问题,无论当前页面在哪个路由下,都会指向正确的静态资源位置。
你可以先在浏览器里直接访问http://localhost:3000/img.png(假设Chestnut默认运行在3000端口),如果能正常显示图片,就说明这个路径是正确的,再放到Hiccup代码里就行啦。
内容的提问来源于stack exchange,提问作者zengod
相关产品推荐
相关产品推荐

