我正在开发一个最终需要完全使用HTTPS的应用程序,但我会在HTTP上暂时开发本地。
如果我在本地使用URL::to_asset('path', false)
,那么当我切换到HTTPS时,我必须将其中的每个实例更改为true。
目前我认为Config::get('app.https', true)
作为第二个论点是解决这个问题的最简单方法,但我想知道是否有更全系统的方法来确保您的资产遵循路由(例如,如果我有一个部分使用HTTPS路由的应用程序,那么如果Laravel自动确定您是否使用HTTPS路由并返回正确的资产链接,那将会很不错。)
或者是否可以让资产使用"//domain.tld/path/to/something"
方法
答案 0 :(得分:6)
如果请求是通过HTTPS完成的,则可以使用Request::secure()
来检查,而不是通过配置手动设置。
答案 1 :(得分:4)
在Laravel 5x上测试过,你可以这样做:
asset('path_to_file', \App::environment() == 'production')
如果您正在投入生产,它将返回true并通过https加载资产,同时在开发中返回false,通过http加载。
答案 2 :(得分:3)
在Web服务器环境中将HTTPS设置为'on'或'off'。这应该传播到Laravel,并导致http:或https:URL生成。
可能值得补充一点,我们在Elastic Beanstalk上运行我们的Laravel应用程序。 EB在Load Balancer处终止SSL,因此Laravel“认为”它是HTTP,而不是。我们使用重定向来确保所有流量都来自外部,并在EB Dashboard设置中设置HTTPS = ON,以便资产不受重定向的影响。
答案 3 :(得分:0)
如果您使用的是Laravel 5.3,则可以使用Laravel asset()
辅助函数。它使用当前的请求方案(HTTP或HTTPS)加载资产
您可以找到更多详细信息here