- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我设计了一个网站,其中整个网站都包含在一个页面 (index.php) 中。在页面内,<section>
标签定义站点的不同部分(主页、联系人、博客等)
导航是通过始终可见的按钮实现的,单击时使用 javascript 更改部分的可见性,以便在任何时候只显示一个部分。
更具体地说,这是通过使用 url 中的哈希值并处理 hashchange
来完成的事件。这会生成诸如 www.site.com/#home(如果没有其他哈希值则为默认值)和 www.site.com/#contact 之类的 url。
我想知道这是否是一个好的设计。它有效,但我觉得必须有更好的方法来实现同样的事情?澄清一下,我的目标是一次加载所有主要内容的网站,以便在初始加载后不再加载页面,并且在部分之间移动会更顺畅。
在此之上,引入了另一个关于SEO的问题。该网站显示在谷歌中,但如果例如搜索查询包含特定部分中的术语,则它在单击时仍会加载默认的#home 页面,而不是找到该术语的特定部分。我该如何纠正这个问题?
最后,其中一个部分是博客部分,这是唯一不会一次加载所有部分的部分,因为默认情况下它会从数据库中加载最新的帖子。当用户从列表中选择不同的帖子(列表本身是使用 AJAX 加载的)时,AJAX 用于获取和显示新帖子,而 pushState 会更改历史记录。同样,为了给每个帖子一个可以在外部引用的唯一 url,菜单更改了由 javascript 处理的 url,导致 url 如 www.site.com/?blogPost=2#blog
和 www.site.com/?blogPost=1#blog
.
Google 根本看不到这些帖子。使用 Googlebot 工具显示抓取工具将博客部分视为始终为空,因此没有任何博客文章被编入索引。
我能改变什么?
(我不知道这是否应该在网站管理员stackexchange上,如果发错了请见谅)
最佳答案
建立一个正常的网站。给每个页面一个普通的 URL。让 Google 索引这些 URL。如果您没有供 Google 编制索引的网页,则它无法为您的内容编制索引。
使用 JS/Ajax 逐步增强站点。
当点击一个链接(或执行其他没有 JS 的情况下会加载新页面的操作)时,使用 JavaScript 将当前页面转换为目标页面。
使用pushState
将 URL 更改为不使用 JavaScript 时将加载的 URL。 (执行此操作而不是使用片段标识符 (#
) hack)。
确保你listen for history events这样您就可以在单击后退按钮时将页面转换回来。
这会导致以下情况:
/foo
/foo
包含/foo
页面的所有内容/bar
/bar
获得的内容,并使用 pushState< 将 URL 设置为 /bar
/
请注意,还有一种 ( not recommended ) hashbang 技术,它可以将单页网站改造成 Google 可以索引的形式,但这种技术不够稳健,不适用于任何其他非 JS 客户端,并且是工作量几乎与正确做事一样多。
关于javascript - 使用 AJAX 设计和 SEO 单页动态网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23109516/
我有这个网站,这个特定页面是安全的,但是当它回发时,它回发到一个不安全的页面。如何解决? 我正在使用 ASP.NET 向导。我有这个页面 - checkout.aspx,页面包含这个控件 checko
我有 2 个 azure 网站 - 两个独立的项目 我现在有 2 个网址: myazurewebsite.azurewebsites.net myazureblog.azurewebsites.net
我有 2 个 azure 网站 - 两个独立的项目 我现在有 2 个网址: myazurewebsite.azurewebsites.net myazureblog.azurewebsites.net
环境: 旧网站: React 托管在 Heroku URL( http://sameurl.com ) 新网站: Java 托管在 Heroku URL ( http://sameurl.com )
我已在 Windows Azure 上注册了一个测试帐户来对其进行测试。我构建了一个 Hello world ASP.NET Web 应用程序 + 数据库只是为了测试。 我安装了 Visual Stu
我有一个可以收集和显示各种测量值的产品(不会详细介绍)。正如人们所期望的那样,显示部分是一个数据库+建立在其之上的网站(使用 Symfony)。 但是,我们可能还会创建一个 API 来向第三方公开数据
这个问题在这里已经有了答案: Software keyboard resizes background image on Android (16 个答案) 关闭 8 年前。 我有一个类似的问题:So
这个问题似乎很常见,但我真的无法根据现有答案解决问题。 我有一个简单的 maven 项目,没有任何复杂的部署配置等,并且想在点击“mvn site”时生成一个 Maven CheckStyle 报告。
有没有人看过有关何时进行横向扩展与纵向扩展的最佳选择的任何分析或信息。什么时候一个比另一个更有意义。 目前,在标准模式和基本模式下,2 个小型实例的费用与 1 个中型实例的费用相同。 拥有 2 个小型
有没有办法找到 azure 网站何时停止? (我通过门户网站停止了网站,但我不记得是什么时候......) 我正在寻找一些日志,但没有找到任何有用的内容。 谢谢。 最佳答案 您拥有的最接近的是 azu
我目前在 Azure VM 的 IIS 中拥有一个网站。我已将该站点复制到 2 个可用区域中的 2 个虚拟机上。 这可以保护网站免遭停机。 我需要为高负载时刻实现一些可扩展性。这似乎就是创建音阶集的目
我有一个托管在 Azure 上的网站 ( http://mike-ward.azurewebsites.net/ )。我从 Azure 门户设置了一个指向(引用?)我的网站的 Azure CDN。根据
我有一个 Azure 网站(不是 Web 角色),有 2 个槽:生产和暂存。 我只想为生产插槽启用 CDN,而不是为登台启用,问题是我找不到识别主机插槽的方法。 RoleEnvironment 不可用
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提出有关书籍、工具、软件库等建议的问题。您可以编辑问题,以便可以用事实和引用来回答它。 4年前关
我们正在考虑将一些网站从 Azure 云服务迁移到 Azure 网站(事情似乎就是这样进行的)。显然,我们被明确告知云服务不会保留文件系统状态,因为它们会在机器故障时重新部署。 我假设网站是基于 Bl
我有一个 Azure 网站,需要使用在 VM 上运行的 Elasticsearch 服务。 虽然我需要能够锁定对 Elasticsearch 的访问,以便只有 Azure 网站可以访问它,但我似乎无法
我有一个 azure 网站,位于 yis3.azurewebsites.net - 我已将其提升为“共享”网站,以便我可以使用自定义域。我拥有从 123-reg.co.uk 购买的域名 yorkshi
我正在使用 abcPDF 动态创建 PDF。 我想保存这些 PDF,以便客户随时检索。最简单的方法(也是我现在在当前服务器上所做的方法)是将完成的 PDF 保存到文件系统。 看来我一直坚持使用 blo
我们正在尝试了解 Windows Azure 管理 API 为 Azure 网站(而非 Webroles)返回的监控数据的复杂性 例如,下图描述了为 CPUTime 检索的数据点。它似乎表明,在晚上
看起来真的很愚蠢,因为我找不到它: 门户网站似乎不太直观,我如何为一个“网站”付费并在其中运行最多 500 个网站?我想当我通过单击左下角的加号添加“网站”时,我添加了整个虚拟机而不是子站点。如何仅添
我是一名优秀的程序员,十分优秀!