【发布时间】:2019-08-30 21:39:42
【问题描述】:
我有一个 Angular 7 组件库,我正在尝试为按钮等添加一些图像。
我的项目结构是这样的
projects
components
src
lib
myComponent
assets
images
image.png
我尝试在其中使用图像的组件与“assets”文件夹处于同一级别。
例如我添加了这个按钮
<p>
<button (click)="activateSelect()"><i
src="../../assets/images/tempImage.png"></i></button>
</p>
...但是当我在 Chrome 中构建和使用开发工具来查看按钮时,图像的路径是 http://localhost/assets/images/tempImage.png
似乎路由无法正常工作?
我尝试了相对路径“./”,只是将路径放入其中,但没有任何效果。这似乎比应该做的要难,所以我确定我不了解它是如何工作的。
非常感谢任何帮助。
更新 我从来没有在按钮上使用过图片,但我用“img”标签替换了“button”标签并让它像这样工作......
<img style="background-color: aliceblue;width:35px;height:35px"
(click)="activateSelect()" src="assets/tempSelect.png">
更新 2 如果您希望应用程序的“资产”文件夹中的图像,上述方法有效。我正在构建一个组件库,我需要我的资产随身携带...有没有办法在组件库中创建一个包含资产的文件夹,您可以使用组件库构建和公开?
更新 3 为了让你的图像进入你的组件库,以便一切都是自包含的,你需要使用一个工具来对你的图像进行 base 64 编码。 我用https://base64.guru/converter/encode/image 进入工具后,选择您的图像,然后选择“输出格式” 我使用了“数据 URI——数据:内容/类型;base64” 然后点击“Encode image to base 64”按钮 这将输出一个这样的字符串
数据:图像/ PNG; BASE64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsSAAALEgHS3X78AAABTElEQVRIie2WwY2DMBBFX1YpICVQQkpwCSmBk + dKCSmB69wogRIowSW4BDpgDx4kFIEwISG7Ur7kAxqL5 + / 5BP + GYeAT + vkI9Qv + s2ARqQ8Hi4gDylfBtzgugBpwIlIeDQ6AA + 4icj0K7ICgqj1QAo2IXI4AF6oaAVS1AxobbwfH6YOq1kAvIve3gS3RcaZUATervx4MXOfAD / 0u3gEugG6uoKqB5LzdErZdjifwFmhJ5zxPwzCsDu99zJzXee / LnLnntYXZ9i26FZHG6sEc1yISrAWLWgWTtjlMFlEDlQUL0oelsnmFLaIihW43ONqRaYDeYK3VO6BX1XvGuzaDLyQHN5KrR7BjIfVLykl1gbm0vo2gUY / PecpJ4Ex6g / F + sjX103F65nprl4FIaoGzXXHjTyRHOT2eU0NKbgeUW4CjnnL8Cv2PW + YXvEe / 8QAaBBU + rp8AAAAASUVORK5CYII = P>
如您所见,上面是“png”图像,请确保此属性与您使用的图像类型相匹配。
一旦你有了这个字符串,你就可以在你的组件中为它设置一个变量,并将这个访问器添加到你想要你的图像的元素中
[src]="YourImageVariable"
这不适用于按钮,因为 [src] 不是按钮的已知属性,但可以与
一起使用【问题讨论】:
标签: angular angular-components