我正在使用reactjs包装我已经构建的Web应用程序,并使用cordova来创建create-react-app来制作移动应用程序。我的页面上的静态图像有问题。一个图像显示在应用程序上,而其他图像则不显示。在浏览器上,一切正常。
我尝试了2种方法。
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
内部。我不知道这种情况的发生方式和原因。
public
中。我做了图像文件夹,并将图像放在那里。然后在img标签中,我确实喜欢这个<img src="/images/diversity_1.png"
。这适用于网络浏览器,但不适用于cordova应用。尽管在检查时有一个包含该图像的图像文件夹。同样,在第一个链接标记为(2)的元素中,我们可以看到路径指向正确。最后我要提到的是我在package.json "homepage": "./"
希望我已经清楚地说明了我的问题。让我知道是否需要进一步澄清。
答案 0 :(得分:0)
我必须将"homepage": "."
(没有/
)添加到package.json
中,以便Android加载文件。
我也使用了本指南: