我正在运行Odoo,并想添加一些缓存机制。
为此,我只是添加了一个服务人员和以下路由:
workbox.routing.registerNavigationRoute( '/ web /', workbox.strategies.staleWhileRevalidate(),
);
不幸的是,我现在总是收到以下错误消息: “混合内容:位于'https://test.emanju.de/sw.js'的页面已通过HTTPS加载,但请求了不安全的资源'http://test.emanju.de/web/login'。该请求已被阻止;该内容必须通过HTTPS进行服务。”
很明显,Odoo引用了一些不安全的来源。现在我有以下问题: 1)我如何识别这些来源(全部)?我可以以某种方式扫描整个页面吗? 2)我能不能继续运行我的服务工作者,而忽略不安全的文件?是否可以在不调整现有应用程序代码和修复所有不安全文件的情况下仍然实现我的目标?
谢谢!
答案 0 :(得分:0)
(这不特定于Workbox,因为使用https://
时,不安全的混合内容会成为问题。)
此“ Preventing Mixed Content”文章中有一些建议,有关如何识别要加载的不安全资源的完整列表。
如该文章所述,假设存在每个要加载的URL的https://
版本,则在提供HTML时可以使用Content-Security-Policy: upgrade-insecure-requests
响应标头告知浏览器{{3} }。
服务人员需要安全来源,安全来源无法通过http://
加载资源。
答案 1 :(得分:0)
我有一个类似的问题:在eLearning模块中加载PDF演示文稿(“幻灯片”)会通过http而不是https请求资源。在我的情况下有效的方法:
proxy_mode = True
添加到[options]
的{{1}}部分中(如果使用docker部署,请将odoo.conf放入odoo.conf
中,在其/etc/odoo/odoo.conf
示例中是共享文件夹(docker-compose.yml
)./config:/etc/odoo
location / {
proxy_pass http://localhost:8069;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Host $host;
proxy_redirect off;
proxy_request_buffering off;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;
client_max_body_size 10240m;
}
包含https://(有些人还将web.base.url
设置为True,这不会似乎对我的安装没有影响重新启动nginx,重新启动odoo和瞧,正在通过https://请求幻灯片中的PDF。