2009-04-15 4 views
2

web.xmlにmime-mapping要素を追加しようとしています。grailsプラグインのweb.xmlにmime-mappingを追加するための正しい構文

私の現在の最高の刺しは次のとおりです。

def doWithWebDescriptor = { xml -> 
    xml + { 
     'mime-mapping' { 
      'extension'("htc") 
      'mime-type'("text/x-component") 
     } 
    } 
} 

私は上記が実際に無効のweb.xmlを出力して、コードが実行されている知っています。以下は、より論理的であるように思わが、それは実際には何の影響もありません:

def doWithWebDescriptor = { xml -> 
    xml.'mime-mapping' + { 
      'extension'("htc") 
      'mime-type'("text/x-component") 
     } 
} 

編集:私はGrailsのに1.0.3

答えて

1

def doWithWebDescriptor = { xml -> 
    xml << { 
     'mime-mapping' { 
      'extension'("htc") 
      'mime-type'("text/x-component") 
     } 
    } 
} 

を(代わりにplusleftShiftに注意してください)試してみてください。

また、新しい要素がXML内の特定の位置に確実に挿入されるようにするには、子要素を取得してから要素を挿入し、plus演算子を追加します。例えば、私は新しいサーブレット・マッピングを追加するには、次のコードを使用します。

def servletMappings = xml.'servlet-mapping' 
servletMappings[servletMappings.size() - 1] + { 
    'servlet-mapping' { 
     'servlet-name'("myServlet") 
     'url-pattern'("/myURL") 
    } 
} 

あなたがこの中にさらに掘るしたい場合は、groovy.util.slurpersupport.NodeChild見(xml引数は、その型である)、そのスーパークラスを持っているgroovy.util.slurpersupport.GPathResult

幸運を祈る!

+0

すばらしい答え...高く評価しました –

0

うーん、私は設定と呼ば見つけることができる唯一のものを使用していますが適切リクエストでMIMEタイプにアクセスするために設定する必要がありますプロパティ:

grails.mime.file.extensions = true 

はこれがtrueに設定し、動作するコードをもう一度試してみてくださいされていることを確認作ってみましょうか?

+0

ない私は怖いの後、私は、私が試した、よかなり何これはまず、Web-app –

+0

の下の静的ファイルではうまくいかないようです。申し訳ありませんが、それは多少関連性の高い唯一のドキュメントでした。がんばろう。 – billjamesdev

2

私はあなたが今、このようなsrc/templates/war/web.xmlでのweb.xmlテンプレートに直接mime-mapping要素を追加することによって、同じことを達成できると信じて:

<mime-mapping> 
    <extension>htc</extension> 
    <mime-type>text/x-component</mime-type> 
</mime-mapping> 
関連する問題