Laravel - 仅在屏幕大小> 768px时包含文件

Cli*_*een -2 javascript php google-dfp laravel

我有一个棘手的情况,我需要在移动设备上移动我的Google广告.我发现最好的方法是使用@include调用它们,但仅限于满足某些屏幕尺寸条件.

我想以下是可行的

@if($screensize < 768px)
  @include('partials.my-advert')
@endif
Run Code Online (Sandbox Code Playgroud)

所以我的问题是我如何将屏幕尺寸变成PHP?我可以通过JS使用屏幕尺寸,$(window).width();但是如何在Laravel if语句中使用此值?

Bur*_*rak 9

您无法使用PHP检测屏幕大小,但是可以检测代理。有一个软件包,可轻松检测代理,使您可以检测请求是否来自台式机/平板电脑/移动设备。

要通过composer安装它,您可以运行以下命令。

$ composer require jenssegers/agent
Run Code Online (Sandbox Code Playgroud)

然后将服务提供商的dd添加到文件中的provider密钥config/app.php

Jenssegers\Agent\AgentServiceProvider::class
Run Code Online (Sandbox Code Playgroud)

此外,将代理别名添加到别名键中,

'Agent' => Jenssegers\Agent\Facades\Agent::class
Run Code Online (Sandbox Code Playgroud)

最后,从您的控制器传递agent变量进行查看。

$agent = new Agent();
return view('some.view', compact('agent'));
Run Code Online (Sandbox Code Playgroud)

然后,在您的视图内,您可以检查座席是否属于某个手机。

@if($agent->isMobile())
  @include('partials.my-advert')
@endif
Run Code Online (Sandbox Code Playgroud)


She*_*rif 7

尝试这样做绝对没有意义,因为整个方法都是过时的.当然,您可以通过$(window).width()javascript将客户端传递回PHP中的服务器,但是如果用户调整窗口大小会发生什么?

这就是为什么今天鼓励的是响应式设计.即使Google Adsense也为此提供了自适应广告单元.

响应式设计不需要后端了解客户端的任何信息,以便在页面上正确呈现内容.相反,客户端不做任何关于如何在客户端UA上呈现内容的假设,并允许高级CSS和JS直接和响应地处理呈现.这意味着,无论屏幕大小如何,您的内容都不会有所不同.

Bootstrap是一个使用响应式设计的前端框架.还有Material设计,它有许多实现也响应.

  • 我认为你混淆了内容的呈现和内容.如果您*实际上正在使用响应式设计,您会知道在页面上放置内容是CSS的责任,而不是HTML.你有没见过[CSS Zen Garden](http://www.csszengarden.com/)? (2认同)