問題タブ [catalyst]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - Catalyst アプリケーションが Template Toolkit ファイルを読み取れないのはなぜですか?
Catalyst
を使用してフレームワークを機能させようとしていますTemplate Toolkit
が、 に問題がありTemplate::Provider
ます。への呼び出しに問題を切り分けましたstat
。ではTemplate::Provider::_init
、呼び出しはstat
正しく機能しますが、他の関数では stat への呼び出しは [] を返します。奇妙なキャッシングを行っているようTemplate::Provider
ですが、何が何なのかよくわかりません。誰にもアイデアはありますか?
編集:もう少し詳細:
Catalyst 開発サーバーから Apache/mod_perl に移行しようとしています。Couldn't render template "file error - mytemplate.tt: not found"
エラーが発生します。ここに私の設定のデバッグダンプがあります:
誰かがここで説明したのとほぼ同じ問題: http://www.gossamer-threads.com/lists/catalyst/users/14888
perl - さまざまなサーバー用にCatalystアプリケーションを構成するにはどうすればよいですか?
多数のサーバーにデプロイされるCatalystアプリケーションを計画しています。これらのサーバーで実行される運用システムの側面を制御するために、サポートスタッフによって内部的に使用されます。
アプリケーションは各サーバーでほぼ同じように実行されますが、サイト固有の動作の制限があります。一部のアクションは一部のサーバーにのみ適用され、一部のアクションは他のサーバーでは異なる動作をします。
Catalystアプリケーションのサイト固有のカスタマイズを可能にする認識されたデザインパターン/プラクティスはありますか?
私は現在、アプリケーションと一緒にサイト構成ファイルを展開することを考えています。このファイルは、有効にするアクションを決定し、他のアクションの動作を制御するパラメーターを設定するために使用されます。理想的には、このカスタマイズは、アプリケーションがmod_perl(Apache2)によってロードされたときに発生しますが、それが可能かどうかはわかりません。
どんな提案も歓迎します!
perl - ジョブ キュー [および Perl/Catalyst] を使用して Web アプリケーションを最適に構築するにはどうすればよいですか?
Catalyst フレームワークを使用して Web アプリケーションを作成しています。TheSchwartzという Job Queue も使用しています。
Web アプリケーション インターフェイス コードから切り離されたアプリケーション固有のコードが必要なため、ジョブ キューを使用したいと考えています。
基本的に、システム全体は次の 3 つの主要コンポーネントで構成されています。
- GUI (Catalyst Web インターフェイス)
- クローラー
- 「攻撃コンポーネント」 (アプリは、他の Web アプリ/サイトで XSS および SQLi の脆弱性を探すために作成されています)
したがって、理論的には、GUI はクローラーのジョブを作成し、それが「攻撃コンポーネント」のジョブを作成します。
現在、Web アプリのコントローラーがジョブ キューにジョブを追加できるように、TheSchwartz オブジェクトをインスタンス化する Catalyst のモデルがあります。
また、必要なアクションを実行できるように、新しいジョブを継続的にリッスン (/データベースをチェック) するジョブ ワーカー スクリプトを作成する必要もあります。現在、TheSchwartz の DB 固有のものは Catalyst のモデルにあり、Catalyst の外部から簡単にアクセスできないと思いますか?
モデルで TheSchwartz ジョブ キューの DB 接続データを複製してから、ジョブ ワーカー スクリプトで複製したくありません。TheSchwartz オブジェクトの作成を Catalyst の外部にある別のクラスでラップし、現在 TheSchwartz オブジェクトをインスタンス化しているモデルでそれを呼び出す必要がありますか? 次に、それをワーカー スクリプトでも使用できます。または、DB データを構成ファイルに格納し、必要に応じて新しい TheSchwartz オブジェクトをインスタンス化する必要があります (Catalyst/ジョブ ワーカー スクリプト内)。
それとも私はこれを考えすぎていますか?
肉付きの良い Web アプリ アーキテクチャの記事へのリンクも役に立つかもしれません (中程度の複雑さの記事を作成したことはありません..)。
乾杯
perl - Catalystのautoを使用して開始するにはどうすればよいですか?
2つの特別な方法が必要です。
- すべてのURLに対して実行されるもの
- 特定のパスに対してのみ実行されるもの(/ admin)
最も一般的なのはを使用することであり、 /adminbegin
のメソッドはを使用すると思いました。たとえば、次の2つのCatalystコントローラーでは次のようになります。auto
[...]
しかし、これは私が望むものを達成しません。正しい解決策は何ですか?
編集:問題は、/adminまたは/admin /Addmin::auto()
にアクセスしたときではなく、呼び出されないことです。
さらにテストした後、auto
が呼び出されることはありません。私はさまざまな場所に自動車を置いてみました、それは決して呼ばれません。
perl - Catalystアプリケーションを運用サーバーにデプロイするためのベストプラクティスは何ですか?
Catalystアプリケーションを運用サーバーにデプロイするための良い方法は何ですか?現在、リポジトリのルートにFastCGIディスパッチスクリプトがあり、サーバーコードを更新する場合は、ブランチをサーバーにプッシュします。これは非常に単純ですが、完璧ではありません。コードがサーバーマシンでのテストに失敗した場合(たとえば、依存関係が満たされていないため)、アプリケーションが壊れたままになります。Catalystアプリケーションをどのようにデプロイしますか?もっと良い方法はありますか?
perl - Is there a way to force $c->uri_for in Catalyst to generate a URI that begins with https?
I've written a web application using Catalyst that has a lot of forms and needs to run over https. There are no hard-coded URLs, everything uses $c->uri_for
or $c->req->uri
. Everything worked great in the development environment using the dev server running over http.
Today, when I went ahead and deployed the application, I noticed a problem. The way our production environment is currently setup, client browsers talk to a F5 load-balancer over HTTPS and the F5 talks to the web server on the internal network over HTTP.
[ Browser ] ---HTTPS---> [ F5 ] ---HTTP---> [ Web Server ]
Now, because the web server only gets HTTP
requests, all URIs are generated starting with HTTP. This means:
becomes:
and now all browsers complain you are submitting data over an insecure connection. I need that c.uri_for
to begin with https.
The app needed to go live today, so I did a mass search/replace for all form actions to this:
Well, now that breaks development, so I conditionalized the form actions based on a config key:
Needless to say, this all just seems wrong on multiple levels. Anyone have a better idea? And is there a way to force $c->uri_for
to generate a URI that begins with https?
Solution
If you're using Catalyst 5.80008 or later, set MyApp->config(using_frontend_proxy => 1);
and simply have your proxy set the X-Forwarded-Port
header. For Catalyst versions prior to 5.80008, still set using_frontend_proxy
so you get the actual client_ip, but to generate the correct URIs have your web server set the environment variable HTTPS
to ON
mysql - DBIx を使用して mysql ビットを使用するにはどうすればよいですか
Catalyst アプリで mysql ビット フィールドにアクセスしようとしています。テーブル情報は次のとおりです。
SQL:
私のマップされたテーブル:
...
今私のコントローラーで、私は簡単なことをします
私のテンプレートでは、次のことを試しました:
私も試してみました
しかし、それもうまくいきませんでした。データベースのフィールド タイプ自体を変更する以外の方法はありますか?
perl - Catalyst でセッションを作成するにはどうすればよいですか?
Catalyst でセッション情報を作成、保存、取得する方法を理解しようとしています。助言がありますか?
perl - Catalyst ですべてのリクエスト パラメータを取得するにはどうすればよいですか?
具体的には、支払いゲートウェイからすべての POST パラメーターを単一の文字列としてキャプチャし、それらを解析して文字列 'ERROR' を探しています。
メソッドがあることは承知してい$c->request->parameters
ますが、その使用方法がよくわからず、CPAN のドキュメントからもわかりませんでした。