[英]Laravel deployed with DigitalOcean App - HTTP issue
我使用来自 GitHub 的“App”服务将 Laravel 9 应用程序(使用 Jetstream/Livewire)部署到 DigitalOcean。部署很顺利,CI/CD 工作正常。
在浏览器中查看应用程序时,我注意到资产(CSS 和 JS)正在使用 HTTP URL 提供服务。现代浏览器都不喜欢这样(称为“混合内容”)。 所以我配置了 Vite ( /vite.config.js
) 使用 HTTPS 来编译资产。现在它们可以工作了。
但是,Laravel 本身在 Blade 模板( url()
和route()
)中构建 URL 时坚持使用 HTTP。 例如,在登录页面上,登录表单操作是http://mywebsite.com 。
我试过了:
\Illuminate\Support\Facades\URL::forceScheme('https');
到boot()
方法'*'
APP_URL
和ASSET_URL
设置为https://mywebsite.com in.envphp artisan optimize:clear
更改设置后清除缓存但这些都没有帮助,forms(和其他 URL)是在 HTTP 方案下生成的。 我猜反向代理设置令人困惑 Laravel。什么是正确的 Laravel 设置以帮助它与 DigitalOcean App 服务(使用 Heroku 和 CloudFlare?用于部署)很好地配合?
事实证明, forceScheme()
应该添加为
\URL::forceScheme('https');
而不是作为
\Illuminate\Support\Facades\URL::forceScheme('https');
因为它存在于Illuminate\Routing\UrlGenerator
class 中。inte.nets 中的一些答案误导了我......不要让它误导你!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.