1
class ProductComponent extends Component {
render() {
    var url = 'http://via.placeholder.com/150x150';
    return (
        <div>
            <figure><img src={url} alt=""/></figure>
            <div className="prod-dtl">
                <span><img src={canada_logo} alt=""/> Williamsburg tote bag iPhone America…&lt;/span>
                <h3>$15.00 <em>$ 25.00</em></h3>
                <button className="add-btn">+</button>
            </div>
        </div>
    );
}}

以上是我的代码,假设我从 API 获取图像。

我已经使用create-react-app来创建应用程序,现在的问题是当我在 Web 视图中打开我的项目时它正确显示。

但是,当我选择像 nexus 6 或 iphone 6 这样的设备时,无论任何设备都是从 chrome 控制台。图片网址将从

http://via.placeholder.com/150x150 => http://via@2x.placeholder.com/150x150

自动请帮助解决这些问题,我需要修复任何要附加的图像。

4

1 回答 1

-1

我没有找到任何解决方案,所以我遇到了纯 jQuery 字符串替换,一旦页面完全加载,将从图像 src 中删除 @2x 和 @3x。

$(document).ready(function () {
        setTimeout(function () {
            $('body img').prop('src', function (_, src) {
            src = src.replace(/@2x\./, '.');         // strip if it's already there
            src = src.replace(/@3x\./, '.');         // strip if it's already there
            return src.replace(/(\.\w+$)/, '$1');
        });
        }, 0);
    });

希望这会帮助需要的人。安息吧:)

于 2018-01-04T10:32:11.600 回答