【问题标题】:How to fix revolution slider in my website?如何修复我网站中的革命滑块?
【发布时间】:2026-01-13 03:10:01
【问题描述】:

我在我的 Laravel 网站中使用了旋转滑块。当我使用根文件夹中的 .htaccess 文件并使用以下代码从 url 中删除“/public”时:

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]

RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1 

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php

滑块不再正确加载(未显示滑块)
这是html代码:

<div class="topslider" style="margin-top: 80px;">
    <div id="slider">
        <div class="fullwidthbanner-container">
            <div id="revolution-slider">
                <ul>
                    @foreach($sliders as $slider)
                        @if($slider->type == 'video' && $slider->video && File::exists($slider->video))
                        <li {{-- data-transition="fade" data-slotamount="7" data-masterspeed="5000" --}}>
                            <video poster="" id="bgvid" playsinline="" autoplay="" muted="" loop="">
                                <source src="{{ asset($slider->video)}}" alt="" type="video/mp4">
                            </video>
                           {{--  <video src="{{ asset($slider->video)}}" type="video/mp4" playsinline autoplay muted loop> </video>  --}}
                            
                        </li> 
                        @endif
                    @endforeach
                </ul>
            </div>
        </div>

        <div class="tp-bullets">
            <div class="simplebullets round bullet">
                
            </div>
            
        </div>
    </div>
</div>

最后这是我的website url

我在控制台中收到此错误:“Uncaught TypeError: Cannot read property 'nextElementSibling' of null”

【问题讨论】:

  • 你使用的是哪个 Laravel 版本?
  • 我使用的是 laravel 5.4
  • 要删除公用文件夹,请使用 *.com/questions/64333428/… 并保留 .htaccess 作为 orgianl 状态,不要这样做,这是在 cpanel 中使用更安全的方式
  • 我没有使用 Cpanel,所以我没有 public_html 文件夹

标签: laravel revolution-slider


【解决方案1】:

Laravel 5.4 自带的标准 .htaccess

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

尝试将public/.htaccess 中的 .htaccess 文件替换为此内容。

https://github.com/laravel/laravel/blob/5.4/public/.htaccess复制的内容

【讨论】:

  • 我没有更改公用文件夹中的 .htaccess,我保持原样。我在根文件夹中添加了一个 .htaccess 文件以从我的 url 中删除 public/
  • 公用文件夹中的 .htaccess 就足够了,虚拟主机的文档根目录设置为项目的公用文件夹 - 不需要根文件夹中的单独 .htaccess 文件
  • 这就是我所做的*.com/questions/28364496/…
  • 这是在生产环境中托管 Laravel 应用程序的一种非常不安全的方式。最好将虚拟主机配置的 DocumentRoot 指向项目的 public 文件夹。这样只能访问公用文件夹。复制根文件夹中的 .htaccess 文件并将 DocumentRoot 设置为项目根文件夹会使应用程序从安全角度来看容易受到攻击,不鼓励
  • 我该怎么做“最好将虚拟主机配置的 DocumentRoot 指向项目的公用文件夹”
最近更新 更多