我们在域中有一个网站,名为:http://website.com。有必要在另一个网站(https://custom.website.com)上实现相同的外观。我们可以看到,第二个位于第一个子域中,但它是安全的(它使用https)。
为了实现相同的外观,两个网站都使用相同的DLL。这些DLL包含菜单,JavaScripts等功能。但第二个网站使用第一个网站上的图像和一些css文件。例如,为了显示“Logo.png”而不是通常的“〜/ Images / Logo.png”,文件的以下路径将呈现为HTML:“http://website.com/Images/Logo.png”
所有内容都是在本地环境中完成的,并且工作正常(http://localhost/提到http://website.com)。
但是,当网站部署到“真实”(开发)环境时,我们感到惊讶:IE通知:
网页包含无法使用安全HTTPS连接传送的内容
我看到解决问题的选项:我们可以将图像包含在安全的网站中并在本地使用它们,但在这种情况下,如果主网站上的内容发生了变化,我们将需要进行重新部署。
问题:是否有任何解决方法,如何从安全的网站我们可以使用位于非安全的图像。
感谢。欢迎任何想法。
P.S。我使用的是ASP.NET 3.5,网站是在Windows 2008下托管的
答案 0 :(得分:2)
您需要在HTTPS网站上托管您的图片,CSS和脚本(更常见的是,从网页加载的任何内容),以避免混合内容。
答案 1 :(得分:1)
根据安全级别和隔离级别,您可以为指向同一物理位置的两个网站设置共享虚拟目录。
示例,在C:\inetpub\shared-static
创建一个目录,并在每个指向/static
的网站下创建一个虚拟目录C:\inetpub\shared-static
。从那里,两个网站都可以根据共享内容的需要引用~/static/logo.png
之类的图像。当目录中放置了新文件(或替换文件)时,两个网站都将引用同一文件。
答案 2 :(得分:1)
如果您可以在主网站上启用https支持,则可以使用https作为图片网址,而不是http。
其他人建议的替代方法是同步图像/或在提供图像时使用共享位置。
答案 3 :(得分:0)
我看到了解决方法:
在第二个网站实施功能,将检查(每天或每小时一次)自己的图像是否是最新的,并在必要时更新它们...
这是一项工作,但有了这样的解决方案,网站将更容易支持。
如果您看到更好的选择,请告诉我们。
感谢。