2013-02-25 5 views
10

私は新しいgrailsアプリケーションで厄介な問題があります。私は私が作っているサイトのデザインをモックアップしようとしていますが、私は自分のCSSで変更を行うたびに、実行中のアプリケーションには影響しません。どんなに大きな変更を加えても、アプリケーションを停止してからもう一度実行する必要があります。Grailsは静的リソースで行われた変更をロードしません(再起動時を除く)

これは非常にイライラしています。私はChromeでキャッシュを有効にしました。特定のドキュメントに移動しても、リソースはまだ古いです。この問題を解決するために私は何ができますか?私は自分のgspファイルに変更を加えることができ、変更は私のCSSには表示されません。

私は現在、このようなレイアウトファイル内のリソースをロードしています:

<link rel="stylesheet" href="${resource(dir: 'css', file: 'app.css')}" type="text/css"> 

あなたは私がすべてのより多くの情報を提供する必要がある場合は、ちょうどお問い合わせください。私はgrails 2.2.0を使用しています。

答えて

19

は(おそらく開発のために)あなたのConfig.groovyに

grails.resources.debug = true 

これを追加詳細はdocsを読みます。

+0

ありがとう、私はそれを探していたが、本当にそれを見つけることができませんでした。これはgrailsの新しいバージョンで追加されたものですか? 2.1に追加する必要はなかったことを覚えているからです。 – Ms01

+0

これはgrailsの一部ではありません。これは、デフォルトのgrailsプラグインになっているリソースプラグインの一部です。 – Gregg

+1

素晴らしい。しかし、私はそれを開発環境上でのみ設定するようにしますか? –

4

グレッグの答えが1.3.7で動作しないようです(2.xで追加されたものかもしれません)。私が見つけた方法は、迅速なCSS更新を可能にすることです。ページヘッダにテンプレートとして別のGSPを含めることです。

つまり、ビューファイルと同じディレクトリに "_css.gsp"という名前のファイル(アンダースコアが必要です)を作成し、htmlスタイルのタグで囲まれた標準のCSSで埋めて、レイアウトヘッダーまたはページ:

<g:render template="css" /> 

これで、_css.gspのコンテンツがページに挿入されます。そして、私は_css.gspを変更することができ、Grailsを再起動することなく、ページの更新後すぐに反映されます。これがGrails 2.0より前の誰かを助けてくれることを願っています!

+0

Grailsの文書からテンプレートGSPファイルを貼り付ける場所についてのメモ: "テンプレート属性の値が '/'で始まる場合は、viewsフォルダに関連して解決されます。先頭の '/'がなければ、現在のコントローラのビューフォルダに対して最初に解決され、それに失敗するとトップレベルのビューフォルダになります。いずれの場合でも、テンプレートファイルの先頭にアンダースコア( '_'そのアンダースコアまたは '.gsp'接尾辞がないテンプレート属性で参照されています。 –

関連する問題