Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SilverStripe-防止HTML书签返回主页_Html_Anchor_Silverstripe - Fatal编程技术网

SilverStripe-防止HTML书签返回主页

SilverStripe-防止HTML书签返回主页,html,anchor,silverstripe,Html,Anchor,Silverstripe,我一直在想如何让传统的HTML书签在SilverStripe站点上工作。我让它们在某种程度上正常工作,因为它们确实可以导航到正确的div。但是,所有书签都导航到主页上的适当部分,这是不正确的 例如,我在页脚的每个页面底部都有一个按钮,用于将用户带回页面顶部: <footer class="footer"> <a href="#top" class="toTop"><i class="fa fa-angle-up"></i></a>

我一直在想如何让传统的HTML书签在SilverStripe站点上工作。我让它们在某种程度上正常工作,因为它们确实可以导航到正确的div。但是,所有书签都导航到主页上的适当部分,这是不正确的

例如,我在页脚的每个页面底部都有一个按钮,用于将用户带回页面顶部:

<footer class="footer">
    <a href="#top" class="toTop"><i class="fa fa-angle-up"></i></a>
    <div class="grid-container">
        <div class="grid-100 mobile-grid-100 tablet-grid-100">
            <h3>Back to top</h3>
              <span class="copyright">&copy; $Now.Year<br></span></div>
    </div><!-- close container -->
</footer>

回到顶端
&抄袭$现在。年份
但是,当单击子页面上的“返回顶部”按钮时,用户将被带到主页的顶部。“联系我们”部分的链接也会发生同样的情况——你总是会被带回主页的“联系我们”部分。但这不是我想要的。书签应该让用户保持在他们所在的页面上

我将这行代码放在config.yml文件中:

SSViewer: 重写\u散列\u链接:false

这阻止了书签被当作网站URL来对待,但这并没有修复看起来的所有问题。是否可以向.yml文件中添加一些内容,以防止子页面上的书签返回主页


编辑:禁用JavaScript并不能解决问题,因此它与服务器端无关。这个问题出现在Chrome、FireFox、Safari和IE中,因此它似乎不是特定于浏览器的。

据我所知,我相信您需要为您的案例做的只是使用
href
中div的
ID
,它会将您带到页面顶部,您可以在那里找到

例如

<footer class="footer">
    <a href="#top" class="toTop"><i class="fa fa-angle-up"></i></a>
    <div class="grid-container">
        <div class="grid-100 mobile-grid-100 tablet-grid-100">
            <h3>Back to top</h3>
              <span class="copyright">&copy; $Now.Year<br></span></div>
    </div><!-- close container -->
</footer>

回到顶端
&抄袭$现在。年份

这也被称为HTML锚定链接的非书签:

据我所知,我相信您需要为您的案例所做的一切就是使用
href
中div的
ID
,它会将您带到页面顶部,在那里您有您的

例如

<footer class="footer">
    <a href="#top" class="toTop"><i class="fa fa-angle-up"></i></a>
    <div class="grid-container">
        <div class="grid-100 mobile-grid-100 tablet-grid-100">
            <h3>Back to top</h3>
              <span class="copyright">&copy; $Now.Year<br></span></div>
    </div><!-- close container -->
</footer>

回到顶端
&抄袭$现在。年份

这也被称为HTML锚定链接的非书签:

我尝试过这个,但我遇到了与以前相同的问题——我总是被带回主页。我去了正确的部分,但它总是在主页上。这就像锚定链接仍然被视为URL一样。重要的一点是,这似乎不是特定于浏览器的,禁用JS并不能解决问题。似乎存在某种未知问题,因为我用rewrite_hash_links=false位解决了这个问题。为什么它以前不起作用,我不知道,但现在似乎起作用了。我试过这个,但我遇到了和以前一样的问题——我总是被带回到主页。我去了正确的部分,但它总是在主页上。这就像锚定链接仍然被视为URL一样。重要的一点是,这似乎不是特定于浏览器的,禁用JS并不能解决问题。似乎存在某种未知问题,因为我用rewrite_hash_links=false位解决了这个问题。为什么它以前不起作用,我不知道,但现在事情似乎起作用了。是你干的。你跑了吗?如果更改yml值(请记住以管理员身份登录),则需要刷新配置缓存。例如,如果输出的源代码仍然包含站点url,则该源代码无法正常工作。这是否适用于您:
您这样做了。你跑了吗?如果更改yml值(请记住以管理员身份登录),则需要刷新配置缓存。例如,如果输出的源代码仍然包含站点url,则该源代码无法正常工作。这是否适用于您: