Vue.js vue访问图像
我试图在我的一个页面中查看图像。我正在使用最新的node express vue nuxt babel设置。我的最终目标是:Vue.js vue访问图像,vue.js,nuxt.js,Vue.js,Nuxt.js,我试图在我的一个页面中查看图像。我正在使用最新的node express vue nuxt babel设置。我的最终目标是: <img :src="'@/assets/images/projects/' + project.image" width="50px" /> 我从上面开始,但我得到了404。所以我试着用一个特定的图像: <img src="@/assets/images/projects/5a2db62e346c1.jpg" width="50px" />
<img :src="'@/assets/images/projects/' + project.image" width="50px" />
我从上面开始,但我得到了404。所以我试着用一个特定的图像:
<img src="@/assets/images/projects/5a2db62e346c1.jpg" width="50px" />
它起作用了,但返回到动态源并没有起作用,而且:
to <img :src="'@/assets/images/projects/5a2db62e346c1.jpg'" width="50px" />
到
足够再次生产404了。404在控制台中,页面加载正常,没有错误,但没有图像迹象。检查这些元素时,我注意到dynamic:src变成了:
<img src="@/assets/images/projects/5a2db62e346c1.jpg" width="50px" />
<img src="/_nuxt/assets/images/projects/5a2db62e346c1.jpg" width="50px" />
“静态”src变为:
<img src="@/assets/images/projects/5a2db62e346c1.jpg" width="50px" />
<img src="/_nuxt/assets/images/projects/5a2db62e346c1.jpg" width="50px" />
因此,为了让它发挥作用,我不得不放弃最初的“@”,并用“_nuxt”代替它:
好的,很好,但是。。为什么?VueJs
vuejs中有几个资产URL转换规则。以下是其中之一:
如果URL以@开头,它也会被解释为模块请求。如果您的网页包配置有@的别名,则此选项非常有用,默认情况下,该别名指向vue cli创建的任何项目中的/src
有关详细信息:VueJs
vuejs中有几个资产URL转换规则。以下是其中之一:
如果URL以@开头,它也会被解释为模块请求。如果您的网页包配置有@的别名,则此选项非常有用,默认情况下,该别名指向vue cli创建的任何项目中的/src
有关详细信息:您正在使用
webpack
捆绑应用程序
在非常高的级别上,webpack查找require
,并负责绑定脚本。确切的含义取决于您的具体配置,但它通常将所有js文件收集在一个文件中,通常缩小并删除未使用的代码
网页包不限于js
文件。通过使用插件,它可以处理从中提取图像、从中加载资源等等
它最终加载图像的方式仍然是使用require
,插件只是插入所有内容,以便webpack
能够处理它们。也就是说,require
是一个编译时功能,如果在编译时无法确定路径,webpack
将无法工作Webpack
通常会将图像路径转换为运行时可用的路径(通常它们不同,并且取决于您的Webpack配置)
当您像这样绑定src
时:
:src=“@/assets/images/projects/'+project.image”
无法在编译时确定路径,因此vue
将在运行时解析路径,但webpack已经完成,它不会转换您的路径
有两种方法可以解决这个问题:
\u numxt
)。注意:如果使用vue.cli,通常会得到一个名为static
的文件夹,该文件夹正好用于此目的webpack
有一些会损坏文件名的技术,因此知道通过webpack
以这种方式处理的资产的最终名称几乎是不可能的您正在使用
webpack
捆绑应用程序
在非常高的级别上,webpack查找require
,并负责绑定脚本。确切的含义取决于您的具体配置,但它通常将所有js文件收集在一个文件中,通常缩小并删除未使用的代码
网页包不限于js
文件。通过使用插件,它可以处理从中提取图像、从中加载资源等等
它最终加载图像的方式仍然是使用require
,插件只是插入所有内容,以便webpack
能够处理它们。也就是说,require
是一个编译时功能,如果在编译时无法确定路径,webpack
将无法工作Webpack
通常会将图像路径转换为运行时可用的路径(通常它们不同,并且取决于您的Webpack配置)
当您像这样绑定src
时:
:src=“@/assets/images/projects/'+project.image”
无法在编译时确定路径,因此vue
将在运行时解析路径,但webpack已经完成,它不会转换您的路径
有两种方法可以解决这个问题:
\u numxt
)。注意:如果使用vue.cli,通常会得到一个名为static
的文件夹,该文件夹正好用于此目的webpack
有一些会损坏文件名的技术,因此知道通过webpack
以这种方式处理的资产的最终名称几乎是不可能的执行此操作:
执行此操作:
它也适用于反勾号:
<img :src="require(`@/assets/images/projects/` + project.image)" width="100px" />
谢谢大家 它也适用于反勾号:
<img :src="require(`@/assets/images/projects/` + project.image)" width="100px" />
谢谢大家 您是否尝试过类似于
:src=“require('@/assets/image.png')”
?如上所述,或者最好还是将图像保存在静态文件夹中,并使用src=“/image.png/
访问它们。您是否尝试过类似:src=“require('@/assets/image.png')”
?如上所述,或者最好还是将图像保存在静态文件夹中,并使用src=“/image.png/
访问它们。谢谢你的解释,它帮助我理解。谢谢你的解释,它帮助我理解。
也起作用了!