【问题标题】:Laravel HTTP vs HTTPS requestsLaravel HTTP 与 HTTPS 请求
【发布时间】:2017-11-05 18:48:31
【问题描述】:

我的 Laravel 网站部署在 Heroku 上。例如,当我输入 http://example.herokuapp.com -> UI 保持不变。但是,当我使用 https 时,用户界面会混乱并中断。

我该如何解决这个问题?

【问题讨论】:

  • 你所有的脚本和css文件都使用了https吗?
  • 显然你有一些 http 资源,如果主页是 https,则不会加载 - 建议你使用 //example.com/path/file.ext 代替 http://example.com/path/file.ext 来获取任何外部资源
  • 你是如何引用你的css和js文件的
  • 可能是 CSS 和 JS 文件没有在 HTTPS 上加载,你可能是从 HTTP 引用它们,你可以使用 Laravel Helper 函数来加载它们,或者你可以简单地使用 //example.com/<file_path>跨度>
  • 您是否检查过浏览器开发工具以查找错误消息?

标签: javascript php laravel laravel-5 https


【解决方案1】:

您遇到了混合内容的问题,您可以通过here了解更多信息。

混合内容

当初始 HTML 通过安全的 HTTPS 连接加载,但其他资源(如图像、视频、样式表、脚本)通过不安全的 HTTP 连接加载时,就会出现混合内容。

解决方案

要解决此问题,只需使用// 引用您的所有脚本样式表 等,而不是定义特定协议。在这种情况下,资源将始终使用与页面本身相同的协议进行加载。

  • 老:<img src="http://example.com/picture.jpg">
  • 新:<img src="//example.com/picture.jpg">

【讨论】:

    【解决方案2】:

    正如大家所说,这是因为您在http协议下加载了一些资产,并且您的域在https中。

    我的建议是您使用 asset()

    <img src="{{ asset('images/my-image.png') }}">
    
    <link href="{{ asset('css/my-styles.css') }}" rel="stylesheet">
    
    <script src="{{ asset('js/my-script.js') }}"></script>
    

    【讨论】:

    • 第二个参数必须是 true 才能保证安全。
    猜你喜欢
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 2019-09-08
    相关资源
    最近更新 更多