1

我正在尝试为我的 CMS 风格的 Rails 应用程序制作动态站点地图,但我无法使用 Haml 在 XML 中创建站点地图。我查看了文档,他们说我应该能够在文档开头!!! XML插入标签。<?xml version="1.0" encoding="UTF-8"?>当我尝试这样做时,它根本不会渲染任何东西,我被迫使用文字元 XML 标记。我究竟做错了什么?

content_controller.rb
=====================
class ContentController < ApplicationController
  # other methods

  def sitemap
    @sections = Section.all :include => :pages
    respond_to do |format|
      format.xml
    end
  end
end

sitemap.xml.haml
================
<?xml version="1.0" encoding="UTF-8"?>
-# !!! XML
-# the above tag does not work
%urlset{:xmlns => 'http://www.sitemaps.org/schemas/sitemap/0.9'}
  %url
    %loc= root_url
  - @sections.each do |section|
    - section.pages.each do |page|
      %url
        %loc= "#{root_url}#{section.url}/#{page.url}"
        %lastmod= page.updated_at
4

1 回答 1

4

您需要进行设置:format => :xhtml才能使其正常工作。
在你的environment.rb

Haml::Template.options[:format] = :xhtml

更多信息在这里http://www.mail-archive.com/haml@googlegroups.com/msg06984.html

于 2012-06-28T16:59:45.393 回答