我正在将现有网站移至 Azure。在 azure webrole 中,我有
1. 默认端口的网站和
2. 另一个端口的服务让我们说:8000
现在我的网站创建了一些动态页面,并且要求使用新的 URL 更新 sitemap.xml。在开发阶段,我能够从服务中创建和更新 sitemap.xml 文件。但这在登台服务器上是不可能的。
我无法理解为什么会这样。谁能告诉我一个解决方案,我可以在服务的网站根文件夹中创建一个 sitemap.xml 文件?
我正在将现有网站移至 Azure。在 azure webrole 中,我有
1. 默认端口的网站和
2. 另一个端口的服务让我们说:8000
现在我的网站创建了一些动态页面,并且要求使用新的 URL 更新 sitemap.xml。在开发阶段,我能够从服务中创建和更新 sitemap.xml 文件。但这在登台服务器上是不可能的。
我无法理解为什么会这样。谁能告诉我一个解决方案,我可以在服务的网站根文件夹中创建一个 sitemap.xml 文件?
我会说你有比 sitemap.xml 本身更大的问题!
在 Azure WebRole 中工作,您拥有一个非持久性存储。这是我们为云的可扩展性/弹性/弹性付出的代价。这意味着,如果运行代码的硬件(裸机)发生问题,Azure 将在一块新金属上实例化一个新的,并部署您的原始包。那时,您所有动态生成的页面都将丢失,因为它们不是您原始包的一部分。
对于您的站点从用户上传/等生成/接受的所有内容,您必须使用Azure Blob 存储来保持。在 Blob 存储中获取动态内容后,您可以通过多种方式将其交付给最终用户:
现在您可能已经猜到了——让 Sitemap.xml 始终保持最新的最佳方法是再次使用 ASP.NET 处理程序来动态生成其内容。当然,使用某种类型的缓存(甚至可能是 blob)来避免对 Sitemap.xml 的每个请求的昂贵调用和对象图。