google-maps - Vue // 如何从 js 方法指向 assets 文件夹?
问题描述
我有一个由 vue-cli v3 生成的 vue 项目,我正在尝试为 markerclustererplus v3 提供自定义标记,但它不起作用!
我已经放置了包含所有 m{1-5}.png 图像的“m”文件夹,并向 MarkerClusterer 提供了 imagePath 选项,imagePath: "/assets/m/m"
但我得到的只是表示图像加载失败的图标。图标的路径似乎是正确的,http://localhost:8080/assets/m/m2.png
到目前为止,我已经尝试将“m”文件夹移动到public
文件components
夹,但它也不起作用。http://localhost:8080/assets/m
如果我从浏览器地址栏中打开文件夹或其中的文件,它也无济于事。我也没有在浏览器的源选项卡上看到任何图像。
更新:
根据markerclustererplus文档imagePath
属性是一个字符串,它是:
用于集群图标的图像文件组的根名称的完整 URL。完整文件名的格式为 imagePathn.imageExtension,其中 n 是图像文件编号(1、2 等)。默认值为 MarkerClusterer.IMAGE_PATH。
所以我不能只使用 require('/folder_path/'),因为我没有调用某些集群类型所需的确切 .png 并且我不能将图像数组传递给imagePath
属性,因为它是一个字符串。
这是我的src
目录树:
.
├── App.vue
├── api.js
├── assets
│ ├── logo.png
│ └── m
│ ├── m1.png
│ ├── m2.png
│ ├── m3.png
│ ├── m4.png
│ └── m5.png
├── components
│ ├── google-map.vue
│ └── side-bar.vue
├── dummyData.js
└── main.js
我imagePath: "/assets/m/m"
在文件中将选项传递给 MarkerClusterer google-map.vue
,它会导致<img src="/assets/m/m2.png">
浏览器中的元素。
解决方案
对我有用的方法是将图像放在/public
目录中的文件夹中,然后将其设置imagePath
为该文件夹。所以你会有:
public
map-cluster-images
m1.png
m2.png
m3.png
.....
然后当你启动MarkerClusterer
:
imagePath: '/map-cluster-images/m'
推荐阅读
- tensorflow - tf.estimator.Estimator的train方法中的steps是什么意思?
- postgresql - 在语句 Sequelize 中使用过程函数
- ios - 是否可以为 iOS 应用程序开发设置持续集成和持续部署?
- reactjs - 在单个文件夹中本地开发多个 React 应用程序
- python - Python BeautifulSoup 硒刮刀
- javascript - 如何根据 ReactJS 中的响应获取 json 数据并渲染组件(List)
- python - 如何在python中从另一个定义启动线程并从另一个定义停止线程?
- python - 在python中捆绑变量的正确方法是什么
- c++ - 返回带有 void 的函数的设计含义
- hazelcast - 使用 HazelcastClient 在 ClientConfig 中以编程方式为 IMap 配置 TTL、Max Size 和 Eviction 策略