阻止:在 HTTPS 中加载 Laravel CSS 和 JS 时出现混合内容错误

Posted

技术标签:

【中文标题】阻止:在 HTTPS 中加载 Laravel CSS 和 JS 时出现混合内容错误【英文标题】:Blocked:Mixed-Content error while loading Laravel CSS and JS in HTTPS 【发布时间】:2018-11-17 13:15:16 【问题描述】:

我正在使用 Laravel 5.5.39 版,并使用 ELB 以及来自 Amazon 证书管理器的 SSL 在 AWS 中托管我的实例。加载网站时,它显示安全,几秒钟后它又恢复为不安全,因为我的 css 和 js 在开发者工具中出现“blocked:mixed-content”错误。我的证书是有效的,但 https 不能正常工作,任何帮助将不胜感激?

操作系统-Amazon Linux、Apache - Apache/2.4.27

【问题讨论】:

serverfault.com 这可能是 301 重定向的 htaccess 语法问题。向我们展示你的 .htaccess -- 和你的 Laravel config 【参考方案1】:

@Zak,请找到 .htaccess

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On
    # Handle Authorization Header
    RewriteCond %HTTP:Authorization .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%HTTP:Authorization]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %REQUEST_FILENAME !-d
    RewriteCond %REQUEST_URI (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %REQUEST_FILENAME !-d
    RewriteCond %REQUEST_FILENAME !-f
    RewriteRule ^ index.php [L]
</IfModule>

【讨论】:

@Zak,感谢您编辑 .htaccess,这正是我所拥有的,您能否提供您的建议。【参考方案2】:

中找到相同问题的解决方案
    https://laracasts.com/discuss/channels/laravel/mixed-content-issue-content-must-be-served-as-https https://laracasts.com/discuss/channels/laravel/getting-mixed-content-error-when-viewing-website-over-https?page=1 Load Blade assets with https in Laravel

【讨论】:

非常感谢您的建议,此链接“laracasts.com/discuss/channels/laravel/…”中提供的解决方案已解决问题【参考方案3】:

混合内容错误是由于您的代码中使用了带有 http 的非 SSL 网址。例如:如果您使用的是 google 字体,例如

<link href="http://fonts.googleapis.com/css?family=Sunflower:300" rel="stylesheet">

在您的站点中是 http 而不是 https,这将导致问题。 请检查您在网站中使用的所有 url 是否有 https 而不是 http。希望这会有所帮助。

【讨论】:

以上是关于阻止:在 HTTPS 中加载 Laravel CSS 和 JS 时出现混合内容错误的主要内容,如果未能解决你的问题,请参考以下文章

如何阻止网站在 iframe 中加载?

无法在 Karaf 中加载捆绑包

如何阻止在 AVPlayer 中加载 http 流 url

有没有办法阻止内容在最小宽度屏幕中加载

我可以阻止 C++ dll 在 Python Ctypes 中加载吗?

如何在 Laravel 中加载嵌套关系