【问题标题】:Ionic 5 - Read file from Asset folderIonic 5 - 从 Asset 文件夹中读取文件
【发布时间】:2020-08-29 16:06:13
【问题描述】:

我在asset/files/myFile 中有一个文件。我想在组件中读取它。

在 Ionic 3 中我会这样做:this.http.get("assets/files/Filename")

在 Ionic 5 中我有一个错误,因为请求搜索:http://localhost/assets/files/Filename

怎么了? 谢谢!

编辑:我使用 HttpClientModule

【问题讨论】:

  • Http 不适用于通过该协议访问资源。什么样的文件?
  • @AluanHaddad 一个简单的文本文件 ;)
  • import file from 'file.txt'; 加载它,捆绑它。您需要在某处添加declare module '*.txt';。 Webpack(正在做所有工作)将为您加载文件

标签: angular file ionic-framework ionic5


【解决方案1】:
import { Articles } from "src/assets/devArticles/articles.json";

json 看起来像这样:

 {
   "Articles": [{
   "title": "What does Healthy Software look like?",
   "url": "https://dev.to/jwp/what-does-healthy-software-look-like-ad2"
},

或者这个:

import data from "src/assets/devArticles/file.json"

或者这个在节点中:

fs.readFile('/etc/passwd', (err, data) => {
  if (err) throw err;
  console.log(data);
});

【讨论】:

  • 访问 json 文件的属性,就好像它们被命名为导出一样,在它工作时依赖于粗略的加载器互操作。将其导入为default:import data from "file.json" 并将属性引用为data.Articles
  • 我不明白你在说什么'默认:导入数据'它看起来像一个对象键值对但在哪里?。我问的原因是我发布的内容对我有用。
  • 对不起,如果我不清楚。正确的导入是import data from "src/assets/devArticles/file.json",你有,但你也有import { Articles } from "src/assets/devArticles/articles.json",这是很成问题的。您不能从模块导出的单个对象中选择属性,就好像它们被命名为导入一样。当您像导入模块一样导入 JSON 文件时,模块实际上是由加载器合成的,因为 JSON 文件不是模块。该模块看起来像export default JSON.parse("{\"Articles\": whatever}")
【解决方案2】:

试试这个?

这是一个 json 文件,请尽可能方便地进行更改

fetch('/assets/your_file')
  .then(function(response) {
    return response.json();
  })
  .then(function(myJson) {
    console.log(myJson);
  });

【讨论】:

  • 这不是你应该获得资产的方式。使用普通导入,webpack 将在运行时处理从正确位置获取文件。
  • 你是对的,但每个人都有自己的编程方式,这就是他们的道路。感谢您的评论
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-11
  • 2014-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多