将img src映射到其他域

时间:2016-12-21 06:59:18

标签: javascript jquery html asp.net-mvc

我想将所有图片,css文件移动到另一台服务器, 然后让所有img标签src(相对路径)指向该服务器的域。

例如。   原文:

<i><img src= "/Content/picture.png" /></i>

我想要的是什么:

<img src="ServerDomain/Content/picture.png" />

我试过jQuery

function Mapping() {
   $('img').each(function() {
       $(this).attr('src', 'ServerDomain' + $(this).attr('src'));
   });
};

$(document).ready(function() {
     Mapping();
});

但是通过javascript生成的一些img标签不起作用。

(顺便说一句,ServerDomain在web.config中设置(由ajax获取))

是否有其他解决方案可以解决?

非常感谢。

2 个答案:

答案 0 :(得分:0)

您必须确保您的代码在生成img标记的JavaScript之后运行。

因此,要么在其他代码之后移动代码,要么在其后调用Mapping函数

答案 1 :(得分:0)

我在本地制作了一个可以帮助您的示例。我不知道你在页面上生成图像的逻辑,所以我做了一个简单的:

 <script>
    /* some logic that retrieve the image from somewhere else  - javascript produce image */
    function GetMyPicture() {
        return "28141835294_99d18fa033_z";
    }
    $(document).ready(function() {
        var src = GetMyPicture() + ".jpg";
        $("#my").attr('src', src);
    });

</script>

<script>

    var domain = "https://c7.staticflickr.com/9/8597/";

    function Mapping() {
        $('img').each(function() {
            $(this).attr('src', domain + $(this).attr('src'));
        });
    };
    $(document).ready(function() {
        Mapping();
    });

</script> 

<body>
   <img id="my" src="">
</body>