如何解决为什么ejs中的某些图像被加载到浏览器中却为什么其他图像却不被加载的原因可能是什么呢?
css
,js
和图像目录位于公共目录中。反过来,公共目录位于视图内部(我不知道在视图目录内部添加公共目录是否是一个好习惯)。
css
文件和js
文件(在公共目录中)正在工作,但是无论何时只要在浏览器中加载一个图像(即navbar
部分的徽标)我启动服务器,其余图像在相应位置显示小图标。所有图像都在同一目录中,我以相同的方式链接了所有图像。为什么浏览器中只出现一个?
我不知道将公共目录添加到views目录中是否是一个好习惯,但是当我使用app.js
将它们都添加到同一路径时,public中的所有文件都停止了工作。但是我知道由于以下原因,我走错了路:
-
是否观察到差异 两种情况下app.use(express.static(“ public”);都添加到
app.js``` (that is,the server file) or not. This means that that line of code is not working,still the
cssand
js`文件中。 -
即使所有图像都以相同的方式链接,浏览器中也只会显示其中一张图像。
-
“公共”一词出现在每个静态文件的源代码中,而忽略了所有静态文件的工作。
应用程序结构:
中,
webapp,
主要,
意见,
部分
footer.ejs
header.ejs
上市
引导程序
css
js
图片
home.ejs
post.ejs
news.ejs
about.ejs
contact.ejs
app.js
package.json
我希望缩进在这里会有所帮助,因为目前还不允许我发布照片。
home.ejs中的图像是
img src="../views/public/images/syringe-pill-capsule.jpg,
img src="../views/public/images/dna-1811955_1920.jpg",
img src="../views/public/images/lab-217043_1280.jpg".
浏览器上唯一加载的是header.ejs中导航栏部分的徽标。链接为img src =“ ../ public / images / wd.jpg”
解决方法
问题是您没有通过正确的路径来表达express.static。您需要将根更改为实际根,即:
app.use(express.static("./path-to-views/public")
然后,您需要确保在html中使用正确的路径,该路径将非常简单:
src="/images/syringe-pill-capsule.jpg"
编辑:
您使用的express.static
的根是正确的,即
app.use(express.static("views")
但是您需要将图像src
属性中的路径调整为以下绝对路径:
src="/public/images/syringe-pill-capsule.jpg"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。