从子域重定向到主域导航栏下拉菜单
Redirect from subdomain to main domain navbar dropdown
我在这里 找到了类似的解决方案,但我尝试将其应用于我的项目,但没有成功。
所以回顾一下 - 我正在使用 Bootstrap Navbar 和 ScrollTop 平滑滚动并且在主页上工作正常。 (例如 - example.com、example.com/#dropdown1)。问题是当我转到子域(例如 - example.com/user)然后单击下拉导航栏菜单选项时,它只是将“#dropdown1”应用到子域的末尾(例如 - example.com/user/#dropdown1) 并且不重定向。
我可以将 href
更改为 /#dropdown1
,但平滑滚动不再有效。它只是跳转到 div,无论是在主域还是子域上。下面的相关代码 - 请帮助。
我在某处阅读以尝试数据目标,因此它在这里但没有用。
Application.html.erb
...
<div class="collapse navbar-collapse" id="bb-nav">
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Sellers <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#home" data-target="home">Home</a></li>
<li><a href="#dd1" data-target="dd1">dd1</a></li>
<li><a href="#dd2" data-target="dd2">dd2</a></li>
<li><a href="#dd3" data-target="dd3">dd3/a></li>
</ul>
</li><!--/.dropdown-->
</ul>
</div>
...
<script type="text/javascript">
var $root = $('html, body');
$('.navbar-nav a').click(function() {
var href = $.attr(this, 'href');
$root.animate({
scrollTop: $(href).offset().top
}, 500, function () {
window.location.hash = href;
});
return false;
});
</script>
这个post帮我找到了答案。
我创建了一个部分,它有一个子域页面的备用导航栏,然后执行了这个:
Layout/Application:
<body>
<% if content_for?(:navbar) %>
<%= yield(:navbar) %>
<% else %>
# code for default navbar
<% end %>
</body>
然后在我所有的子域页面视图中我做了:
查看:
<% content_for :navbar do %>
<%= render '_navbar_partial_name' %>
<% end %>
备用导航栏我刚刚制作了一个指向主页的按钮,当登陆主页时,它会自动将该按钮转换为常规的滚动下拉菜单。
我在这里
所以回顾一下 - 我正在使用 Bootstrap Navbar 和 ScrollTop 平滑滚动并且在主页上工作正常。 (例如 - example.com、example.com/#dropdown1)。问题是当我转到子域(例如 - example.com/user)然后单击下拉导航栏菜单选项时,它只是将“#dropdown1”应用到子域的末尾(例如 - example.com/user/#dropdown1) 并且不重定向。
我可以将 href
更改为 /#dropdown1
,但平滑滚动不再有效。它只是跳转到 div,无论是在主域还是子域上。下面的相关代码 - 请帮助。
我在某处阅读以尝试数据目标,因此它在这里但没有用。
Application.html.erb
...
<div class="collapse navbar-collapse" id="bb-nav">
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Sellers <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#home" data-target="home">Home</a></li>
<li><a href="#dd1" data-target="dd1">dd1</a></li>
<li><a href="#dd2" data-target="dd2">dd2</a></li>
<li><a href="#dd3" data-target="dd3">dd3/a></li>
</ul>
</li><!--/.dropdown-->
</ul>
</div>
...
<script type="text/javascript">
var $root = $('html, body');
$('.navbar-nav a').click(function() {
var href = $.attr(this, 'href');
$root.animate({
scrollTop: $(href).offset().top
}, 500, function () {
window.location.hash = href;
});
return false;
});
</script>
这个post帮我找到了答案。
我创建了一个部分,它有一个子域页面的备用导航栏,然后执行了这个:
Layout/Application:
<body>
<% if content_for?(:navbar) %>
<%= yield(:navbar) %>
<% else %>
# code for default navbar
<% end %>
</body>
然后在我所有的子域页面视图中我做了:
查看:
<% content_for :navbar do %>
<%= render '_navbar_partial_name' %>
<% end %>
备用导航栏我刚刚制作了一个指向主页的按钮,当登陆主页时,它会自动将该按钮转换为常规的滚动下拉菜单。