2009-05-07 4 views
0

私は、Flexフロントエンドのバックエンドとしてgrailsアプリケーションを使用しています。アプリケーションを簡単に開発してデバッグできるようにするには、crossdomain.xmlファイルをサーバーのルートに配置する必要があります。つまり、http://localhost:8080/crossdomain.xmlでアクセスできる必要があります。同様の使用例は、favicon.icoまたはrobots.txtのデプロイメントですが、これはデフォルトのルートWebアプリケーションを持つTomcatサーバーを通じて本番環境で行うことができます。Grailsサーバのルートディレクトリに特定のファイルを置く方法は?

しかし私の場合は、grails run-appを実行した後にcrossdomain.xmlを用意する必要があります。私は、アプリケーション全体をルート(http://ca.rroll.net/2009/03/27/configuring-the-grails-root-application-context/)に移動することができることを知っていますが、これはgrailsアプリケーションがまだデフォルトのアプリケーションコンテキストの下に存在する必要があるため、これも私が望むものではありません。

誰かが知っている、私はこれをどのようにすることができますか?私はgrailsインストールのjettyサーブレットコンテナをどうにか再構成する必要がありますか?

答えて

1

私は答えを見つけたと思います。私はまだこれを試していないので、YMMVです。

このarticleの中で、Colin Harringtonは、追加のJettyコンテキストを展開することによって、サーバーのルートでcrossdomain.xmlファイルを使用できるようにする方法について説明します。彼の技術

は最初の著者はまた、私は、Apacheとmod_proxyをして、これを解決する方法を考え出した別の代替

0

としてStatic Resources Pluginを使って説明し、このブログentry、で提案されました。これにより、GrailsのインストールとGrailsプロジェクトの両方を元のままにすることができます。 Grails内部でのハッキングはなく、プロダクションでは不要なプラグインを追加する必要はありません。

1. Apacheのインストールこれはしかし、ご使用のオペレーティング・システムのための最も理にかなってください2.2

をhttpdが。 Apache 2.2をインストールすることが重要です。私はこれをUbuntuシステムでやったので、特定のコマンドやファイルの場所はUbuntuになります。システムに合わせて必要に応じて変更してください。

Apacheをインストールしたら、httpdを起動します。

sudo /sbin/service httpd start 

ウェブブラウザを使用して正しくインストールされていることをテストします。

2.

はあなたの静的ファイルを保持しますあなたのディスク上の場所を選択し、ルートディレクトリ

を作成します。これはhttpdのドキュメントルートになります。私は/ var/grails_rootを使用します。

mkdir /var/grails_root 
touch /var/grails_root/crossdomain.xml 

3.お好みのテキストエディタでhttpd.confを

オープンhttpd.confでのVirtualHostを作成します。

vim /etc/httpd/conf/httpd.conf 

お気に入りのポートを選択し、そのポートに仮想ホストを作成します。私は9090を使用しますが、どんなポートも使用します。

これらの行をhttpdに追加します。あなたが今、あなたのドキュメントルートディレクトリ内の静的ファイルにアクセスすることができますconfに

Listen 9090 
<VirtualHost *:9090> 
    DocumentRoot "/var/grails_root" 
    <Directory "/var/grails_root"> 
     Allow from all 
    </Directory> 
</VirtualHost> 

再起動httpdの

sudo /sbin/service httpd restart 

テスト。そうでなければ、次のステップに進む前にこれを修正する必要があります。

4のmod_proxyを有効にして、あなたはこれらのモジュールの両方をロードする必要が

mod_proxy_http。 mod_proxyにはプロキシの基本機能があり、mod_proxy_xxxモジュールにはプロトコル固有の情報があります。彼らは標準のhttpd 2.2で出荷されるので、余分なものをインストールする必要はありません。

LoadModule proxy_module modules/mod_proxy.so 
LoadModule proxy_http_module modules/mod_proxy_http.so 

は今、あなたは前のステップで設定した仮想ホストを変更httpd.confのためにこれらの行を追加します。 9090

これは、すべてであるあなたは、ポートを経由して、あなたの静的ファイルとあなたのGrailsアプリの両方にアクセスできるようにする必要があり、

sudo /sbin/service httpd restart 

<VirtualHost *:9090> 
    DocumentRoot "/var/grails_root" 
    <Directory "/var/grails_root"> 
     Allow from all 
    </Directory> 
# New lines start here 
    ProxyRequests Off 
    <Proxy *> 
     Order deny,allow 
     Allow from all 
    </Proxy> 
    ProxyPass /grailsApp http://your.grails.server:8080/grailsApp 
# New lines end here 
</VirtualHost> 

再起動のhttpd(コメントを省略することができます)

他のバージョンのApacheでこれを行うための情報は、同じサイトで利用できます。

+0

ロングではありません。あなたのブログが永遠に残っている(非常にありそうもない)のでなければ、ここで内容を言い換えて(あるいは地獄にコピーしてください)。回答は単に「答えを見るためにここに行く」以上のものでなければなりません。 – cHao

+0

リンクをブログ記事の関連テキストに置き換えました。 – haydenmuhl

関連する問題