繁体   English   中英

反应 Symfony 资产阻止加载混合活动内容

[英]React Symfony assets Blocked loading mixed active content

我一直在寻找这个问题的解决方案,但显然我没有找到一个,因为我发布了这个问题。 我知道我以前做过这个,所以我不明白我是如何做到的,但是我收到了以下消息,即阻止加载混合活动内容,但 React 文件与Symfony 文件位于

阻止加载混合活动内容屏幕截图

我的 Symfony base.html.twig 文件:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>{% block title %}Welcome! Tarik{% endblock %}</title>
        {% block stylesheets %}{% endblock %}
    </head>
    <body>
        {% block body %}{% endblock %}
        {% block javascripts %}{% endblock %}
        {% include 'react-symfony-templates/index.html.twig' %}
    </body>
</html>

我的 index.html.twig 文件:

<script src="{{ asset('build/layout.js') }}"></script>
<script src="{{ asset('build/rep_log_react.js') }}"></script>

我刚刚开始项目,这就是我所拥有的一切,但是没有加载 layout.js 和 rep_log_react.js 文件,那么 symfony 项目没有要加载的反应文件。

我还尝试将脚本标签包围在 index.html.twig 中:

{% block javascripts %}
    <script src="{{ asset('build/layout.js') }}"></script>
    <script src="{{ asset('build/rep_log_react.js') }}"></script>
{% endblock %}

还是同样的错误。 再一次,我知道我以前做过这个,我确信我错过了一些小东西,比如不要使用 symfony 服务或其他东西,但我需要一些新的眼光来看待这个。

像往常一样,提前谢谢

我正在编辑我的答案,因为这不是一个永久的解决方案。 事实证明,如果我关闭 encore dev-server 和 symfony 服务器,那么所有链接都会返回到 http。 如何将其配置为指向https://localhost:8080/build

第二次编辑

这是解决方案 - 运行 encore dev-server 时使用以下标志

sudo yarn encore dev-server --port 8080 --https --hot

之后应该向您的浏览器添加安全豁免

基本上只需要以下命令行,但我遇到了一些我必须修复的错误。 首先,允许 encore 在 localhost:8080/build 上运行构建目录的命令行

yarn encore dev-server --hot

当我运行上述命令时,我收到了 manifest.json is missing 的错误,这导致了一系列命令。 由于我在 Mac 上,我不得不在每个命令的开头使用 sudo

sudo yarn add --dev @symfony/webpack-encore
sudo yarn add webpack-notifier --dev
sudo yarn encore dev

随后更改以下文件以反映“https”而不是“http”/public/build/manifest.json - 我在更改以下文件之前关闭了两个服务器。

我使用 vi 和以下命令来搜索和替换:

%s/http:/https:/g

{
"build/admin.js": "https://localhost:8080/build/admin.js",
"build/app.css": "https://localhost:8080/build/app.css",
"build/app.js": "https://localhost:8080/build/app.js",
"build/layout.js": "https://localhost:8080/build/layout.js",
"build/runtime.js": "https://localhost:8080/build/runtime.js",
"build/vendors~admin.js": "https://localhost:8080/build/vendors~admin.js",
"build/vendors~admin~app~layout.js": "https://localhost:8080/build/vendors~admin~app~layout.js",
"build/vendors~admin~layout.js": "https://localhost:8080/build/vendors~admin~layout.js",
"build/vendors~app.js": "https://localhost:8080/build/vendors~app.js",
"build/vendors~layout.js": "https://localhost:8080/build/vendors~layout.js"
}

/public/build/entrypoints.json

"entrypoints": {
  "layout": {
    "js": [
      "https://localhost:8080/build/runtime.js",
      "https://localhost:8080/build/vendors~admin~app~layout.js",
      "https://localhost:8080/build/vendors~admin~layout.js",
      "https://localhost:8080/build/vendors~layout.js",
      "https://localhost:8080/build/layout.js"
    ]
  },
  "app": {
    "js": [
      "https://localhost:8080/build/runtime.js",
      "https://localhost:8080/build/vendors~admin~app~layout.js",
      "https://localhost:8080/build/vendors~app.js",
      "https://localhost:8080/build/app.js"
    ],
    "css": [
      "https://localhost:8080/build/app.css"
    ]
  },
  "admin": {
    "js": [
      "https://localhost:8080/build/runtime.js",
      "https://localhost:8080/build/vendors~admin~app~layout.js",
      "https://localhost:8080/build/vendors~admin~layout.js",
      "https://localhost:8080/build/vendors~admin.js",
      "https://localhost:8080/build/admin.js"
    ]
  }
}
}

重启两台服务器

symfony server:start 

在一个单独的终端 window

yarn encore dev-server --hot

证据就在布丁中 - 请参见以下屏幕截图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM