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