私はかなり標準的な2.0.3 Grailsアプリを持っていて、grails install-templates
を実行しました。src/templates/scaffolding /ディレクトリにlist.gsp、edit.gspなどのファイルが置かれています。これらのファイルは、変更が加えられたときに自動的にリロードされません。自動的にリロードされるようにする方法はありますか?変更を加えるたびにアプリケーションを停止/開始する必要はありませんか?私はwatchedResourcesを見てみましたが、それはプラグインの開発に関連しているようです。テンプレートファイルを自動的にリロードする
答えて
「監視対象リソース」メカニズムは、プラグインにのみ適用されます。このため、正しい修正は
def watchedResources = "file:./src/templates/scaffolding/*"
を追加するためにコアScaffoldingGrailsPlugin.groovy
を変更することであろうと、それはおそらく、その旨をJIRAを提出する価値があります。しばらくして、この振る舞いをスカッフォールディングプラグインに「注入」するための簡単なプラグインを作成することで、それを動作させることができます。 grails create-plugin watch-scaffolding
を行い、その後、プラグインの記述については、以下を使用します。アプリケーションのBuildConfig.groovy
で
import org.codehaus.groovy.grails.plugins.GrailsPlugin
class WatchScaffoldingGrailsPlugin {
def version = "0.1"
def grailsVersion = "2.0 > *"
def dependsOn = [:]
def pluginExcludes = [ "grails-app/views/error.gsp" ]
def title = "Watch Scaffolding Plugin"
def author = "Your name"
def authorEmail = ""
def description = '''\
Watches for changes to scaffolding templates and reloads dynamically-scaffolded
controllers and views.
'''
// URL to the plugin's documentation
def documentation = "http://grails.org/plugin/watch-scaffolding"
// watch for changes to scaffolding templates...
def watchedResources = "file:./src/templates/scaffolding/*"
// ... and kick the scaffolding plugin when they change
def onChange = { event ->
event.manager.getGrailsPlugin('scaffolding').notifyOfEvent(
GrailsPlugin.EVENT_ON_CHANGE, null)
}
// rest of plugin options are no-op
def onConfigChange = { event -> }
def doWithWebDescriptor = { xml -> }
def doWithSpring = { }
def doWithDynamicMethods = { ctx -> }
def doWithApplicationContext = { applicationContext -> }
def onShutdown = { event -> }
}
は
grails.plugin.location.'watch-scaffolding' = '../watch-scaffolding'
(または任意のルートにあなたのアプリケーションのルートからの適切な相対パスであるを追加プラグイン)とあなたの足場テンプレートの変更が自動的に再読み込みを開始するはずです。
(これは、Grailsの2.1でテストされ、私が最初にinfluencesを使用してみましたが、それは何の効果も持っていなかった、しかし、足場プラグインでonChange
イベントを強制的に必要な結果を持っていた。)
GRAILS-755によると、この修正されていますが、私のためにリロードしないので、私はそれがないと思います。
のJira、ここで可能な回避策であることから:
DEF scaffoldedView = org.codehaus:
ダイナミック 足場ビューキャッシュをクリアするには、コンソールプラグインを使用して、このコマンドを実行します.groovy.grails.scaffolding.view.ScaffoldingViewResolver.scaffoldedViews.clear()その後
、私はページを要求次回は、それは キャッシュにそれを見つけるため、Dに戻っていませんそれを再作成することはありません。
このコードはスキャフォールディングキャッシュをフラッシュします。
org.codehaus.groovy.grails.scaffolding.view.
ScaffoldingViewResolver.scaffoldedViews.clear()
これは良いクイックフィックスですが、もう少し自動化されたものを探していました。ありがとう! –
- 1. HTMLページをリロード自動的
- 2. 自由に変更ファイルを自動的にリロードする方法
- 3. IPythonで自動的にモジュールをリロードするには?
- 4. テーブルビューは自動的にコンテンツをリロードします
- 5. アセットの自動リフレッシュ/自動リロード
- 6. .cssを動的にリロードする方法
- 7. tomcat - 動的にクラスをリロードする
- 8. 与えられたhtmlファイルから速度テンプレートファイルを自動的に生成
- 9. grailsアプリケーションは、run-appの完了後に自動的に自動的にリロードされます。
- 10. Googleのページを自動リロードする
- 11. アプリを自動リロードする方法
- 12. ViewPager内のフラグメントにデータが自動的にリロードされない
- 13. サービスファイルはgrails 3.1.6で自動的にリロードされません
- 14. innerHTMLを変更すると、ページが自動的にリロードされますか?
- 15. スーパーバイザプロセスを自動的にリロードする方法はありますか?
- 16. 私のテンプレートファイルで動的な値
- 17. Springリソースの自動リロード
- 18. Flask + mod_wsgiソースコードの自動リロード
- 19. Asp.Netウェブサイトを自動的に起動するWindows起動時に自動的に
- 20. ターミナルコマンドを使用してブラウザにhtmlファイルを自動リロードする
- 21. メインフォームがリロードされたときリストボックスに項目を自動的に表示
- 22. 自動ビルドのコマンドラインでテンプレートファイルからAppxManifestを生成
- 23. PythonリロードとIPython自動リロードも機能していません
- 24. テーブルデータが動的にリロードされない
- 25. jQueryリロードdivのコンテンツ(動的にレンダリング)
- 26. dataSourceの後にUIPageViewControllerを動的にリロードする
- 27. PDFを自動的に生成してサーバーに自動的にアップロードする
- 28. FlaskサーバーのFTPコンテンツの自動リロード
- 29. anglejsバックエンド変更時の自動リロード
- 30. 自動リロードと検索 - PHPページ
これは、.gspファイルには最適ですが、何らかの理由でController.groovyファイルを受け取っていないようです。何かご意見は? –
同じことが分かります.Control.groovyを変更してもonChangeイベントは発生しません。ドキュメントは、 '.groovy'ファイルである' watchedResources'の特別な処理があることを示唆しています: "監視されたリソースがGroovyファイルを指定すると、変更されると自動的にリロードされ、イベントオブジェクトのonChangeクロージャに渡されます"私は 'Controller.groovy'は通常の意味でのGroovyファイルではない(コンパイルとリロードは行われない)ので、イベントを発生させていないと思う。 –
さらに興味深いことに、 'Controller.groovy'を変更したビューテンプレート_afterを変更すると、コントローラを再読み込みさせるべきです(ビューを変更すると完全な再足場が発生します)。しかし、それはしません。この場合、scaffoldされたコントローラは実際には再生成されていますが、再生成されたクラスは古いクラスと同じ名前でGrailsが同じクラスローダでコンパイルしようとしているため、クラスローダは古い 'Class'新しいものではなくオブジェクトです... –