如何使用Reactjs和create-react-app

时间:2019-01-14 12:53:07

标签: reactjs cordova create-react-app

我正在使用reactjs包装我已经构建的Web应用程序,并使用cordova来创建create-react-app来制作移动应用程序。我的页面上的静态图像有问题。一个图像显示在应用程序上,而其他图像则不显示。在浏览器上,一切正常。

我尝试了2种方法。

  1. 我在src目录中有我的images文件夹,其中包含所有图像。我将图像导入为import img from ...(图像的相对路径),然后将其用作img src={img} /。当我执行console.log(img)时,它将显示构建文件夹内的图像文件路径-./static/media/img_name.extension。 现在,我执行npm build,它在cordova目录的www文件夹中创建了整个构建(静态文件夹)。(就像我在package.json "build-js": "react-scripts build", "build": "npm-run-all build-css build-js && cp -a ./build/. ../cordova/www/",中所做的那样)。 cordova build android将在static内创建build的整个platforms/android/assets/www/static文件夹。在static内部,我们有包含所有图像的媒体文件夹。现在,我将附加两个chrome:inspect图像,它们将显示img标签(1)和(3)具有相同的路径样式,但是(1)却显示(2)没有。这是链接:

![元素]:(https://imgur.com/a/qCtygxp) ![来源]:(https://imgur.com/a/qCtygxp

第二个链接显示了文件结构的快照,如图所示是在chrome上进行检查时的来源。因此,有一个文件夹static和另一个文件夹media。这包含正在显示的第一张图像。其余未显示的内容将进入static/media内部。我不知道这种情况的发生方式和原因。

  1. 我尝试的第二件事是将图像放入public中。我做了图像文件夹,并将图像放在那里。然后在img标签中,我确实喜欢这个<img src="/images/diversity_1.png"。这适用于网络浏览器,但不适用于cordova应用。尽管在检查时有一个包含该图像的图像文件夹。同样,在第一个链接标记为(2)的元素中,我们可以看到路径指向正确。

最后我要提到的是我在package.json "homepage": "./"

中添加了这一行

希望我已经清楚地说明了我的问题。让我知道是否需要进一步澄清。

1 个答案:

答案 0 :(得分:0)

我必须将"homepage": "."(没有/)添加到package.json中,以便Android加载文件。

我也使用了本指南:

https://github.com/sriramrudraraju/create-react-app-and-cordova/wiki/Creating-Structure-for-Create-react-app-and-Cordova#installation