[英]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.