問題タブ [mason]
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 - Perl の CGI::cookie が IE では Cookie を設定できるのに、Firefox では設定できないのはなぜですか?
SourceForge アカウントのプロジェクト Web スペースで実行しようとしている Perl CGI コードが少しあります。このコードは、IE と通信するときはブラウザの Cookie を設定できますが、Firefox と通信するときは Cookie が設定されません。「localhost」でApacheをテストすると、両方のブラウザが正常に動作します。Firefox がクラップアウトするのは、リモートの SourceForge URL だけです。
検索により、ほぼ重複する質問が数十件見つかりましたが、通常、人々は正反対の問題を抱えています! (Firefox には問題がなく、IE には問題があります)
Cookie を設定するために呼び出しているユーティリティ サブルーチンは次のとおりです。
何か案は?私の SourceForge プロジェクト URL にはサブドメインが含まれていますが、「localhost」には含まれていないため、最初に考えたのは何らかのサブドメインの問題でした。Cookie ドメインを特定のサブドメインに設定するか、ベースの "sourceforge.net" だけに設定して実験しました。どちらでも変わらないようです。
更新: 以下のコメントの誰かが、HTTP 応答ヘッダーについて尋ねました。ネットワーク トラフィック アナライザー ツールの Wireshark を使用して、IE と Firefox の両方の要求ヘッダーと応答ヘッダーを監視しました。
IE(作品)
リクエスト
応答
Firefox (動作しません)
リクエスト
応答
perl - メイソンの応答の前後のこれらの数値は何を意味しますか?
Ubuntu 10.10 (x86) (apt の標準パッケージ) で mod_perl 2、mason、および apache 2.2 を使用しています。サーバーに HTTP リクエストを送信すると、次のようになります。
私はこれについて少し興味があります。これらの数字 (38 と 0) はどういう意味ですか? ログを調べましたが、意味のあるものは何も表示されず、Google に最適な検索フレーズを見つけられないようです (ドキュメントから明らかな何かが欠落している場合は申し訳ありません)。telnet から同じ結果が得られます (ただし、Firefox ではエラーは発生しないようです)。
これが私のリクエストの内容です(最後の空白を省略しています):
と私のスクリプト(test.html):
前もって感謝します!
javascript - JavaScript関数の変数の値をMason変数に割り当てる方法は?
window.location.href
クライアント側のボタンをクリックすると、javascript変数でプロパティを取得しています。私の要件は、サーバーに送り返すことです。JavaScript 変数の値を Mason コードに戻すにはどうすればよいですか?
1 つのオプション (現在実装しています) は、値が に設定された非表示のテキスト フィールドを動的に作成window.location.href
し、フォームの送信を行うことです。
ここでajaxをどのように使用できますか? 私は ajax ソリューションを探していform.submit()
ます。
perl - MasonとApacheの構成、存在しないファイルのロード
メイソンを使用している間、私は本当に奇妙な振る舞いをします、例えば:
私はindex.html
ファイルを持っています(のような石工タグが含まれています<% $var %> hello
)。
参照しているときhttp://bla.com/index.html
、変数はコンパイル中に変換されます。
しかし、を参照しているときに奇妙な動作がありますhttp://bla.com/index
。
index
(のみ)と呼ばれるファイルはありませんがindex.html
、それでもロードindex.html
され、コード全体が<% ... %>
!!!を含むプレーン/テキストとして表示されます。
何を間違って設定しましたか?
これは私のApache構成です:
perl - Mason2 UTF-8をクリーンにする方法は?
質問を再定式化するのは
- @optionalは私に尋ねました
- 1つのHTML::Masonベースのソリューションが明確でリンクされていなかったため、Apache、mod_perl、およびDBIを使用してMason UTF-8 Unicodeをクリーンにする4つの簡単な手順により、混乱が生じました。
- オリジナルは4歳で、その間に(2012年に)「詩人」が作成されます
コメント:この質問はすでに「人気の質問バッジ」を獲得しているので、おそらく私だけが絶望的な人ではありません。:)
残念ながら、完全な問題スタックを示すことは非常に長い質問につながり、それは非常にメイソン特有です。
まず、意見のみの部分:)
私はHTML::Masonを長年使用しており、現在はMason2を使用しようとしています。詩人とメイソンは 、CPANで最も先進的なフレームワークです。何も比較できるものは見つかりませんでした。すぐに使えるもので、非常にクリーンな書き込みが可能です/しかし非常にハッキング可能です:)/多くのバッテリーが含まれているWebアプリ(ロギング、キャッシュ、構成管理、ネイティブPGSIベースなど...)
残念ながら、作者は残りの単語を気にしません。たとえば、デフォルトでは、ASCIIベースのみであり、 マニュアル、FAQ、またはアドバイスはありません。ユニコードでの使用方法
今事実。デモ。詩人アプリを作成します。
そして、以下に追加しdhandler.mc
ます(2つの基本的な問題を実証するもの)
アプリを実行します
http:// 0:5000 / xls / hello.xlsxにアクセスすると、次のようになります。
ダウンロードhello.xlsxをクリックすると、ダウンロードが表示hello.xlsx
されます。
上記は最初の問題を示しています。たとえば、コンポーネントのソースは「下」にないuse utf8;
ため、lc
は文字を理解しません。
2番目の問題は次のとおりです。[ http:// 0:5000 / xls /hélló.xlsx]または http:// 0:5000 / xls / h%C3%A9ll%C3%B3.xlsx を試してみてください。見る:
もちろん、入力(path_info
)はデコードされません。スクリプトは、perl文字ではなく、utf8でエンコードされたオクテットで機能します。
したがって、perlに「ソースはutf8にあります」と伝えると、結果ににを追加use utf8;
します。<%class%>
追加use feature 'unicode_strings'
(またはuse 5.014;
)さらに悪い:
もちろん、ソースにはワイド文字が含まれているためEncode::encode_utf8
、出力に必要です。
次のようなフィルターを使用してみることができます。
出力全体をフィルタリングします。
<%init%>
ただし、または<%perl%>
ブロックのエンコーディングに注意する必要があるため、これは部分的にしか役立ちません。多くの場所でのperlコード内のエンコード/デコード(読み取り:境界ではない)は、spagethyコードにつながります。
エンコード/デコードは、 詩人とメイソンの境界のどこかで明確に行う必要があります。もちろん、Plackはバイトレベルで動作します。
部分的な解決策。
幸いなことに、詩人は巧妙にそれ(およびメイソン)の部分を変更することを許可しているので、 $poet_root/lib/My/Mason
あなたは次のように変更することができますCompilation.pm
:
必要なプリアンブルをすべてのメイソンコンポーネントに挿入するもの。(すべてのコンポーネントに触れることを忘れないでください。または、コンパイルされたオブジェクトをから削除してください$poet_root/data/obj
)。
また、次のように編集して、境界でリクエスト/レスポンスを処理してみることができます$poet_root/lib/My/Mason/Request.pm
。
すべてをエンコードすることは間違った戦略です、それは例えばXLSを壊します。
したがって、4年後(2011年に最初の質問をした)はまだわかりません:( Mason2アプリケーションでUnicodeを正しく使用する方法はまだわかりませんが、それに関するドキュメントやヘルパーはまだ存在しません。:(
主な質問は次のとおりです。-どこで(Mooseのメソッド修飾子によってどのメソッドを変更する必要があるか)、入力をどのように正しくデコードし、出力をどこで(Poet / Masonアプリで)。
- しかし、テキストのものだけ、例えば
text/plain
またはtext/html
など... - 上記の「サプライズフリー」を実行します。たとえば、単純に機能するものを実行します。;)
誰かが実際のコードを手伝ってくれませんか?上記で何を変更する必要がありますか?
html - メイソンコードの条件付き
masonのブール値がtrueであるかどうかを表示するhtmlコードのブロックを作成したい場合、htmlコードの各行を印刷するためにprintを使用せずにこれを行う方法はありますか?つまり、このようなことをする方法はありますか
それ以外の
perl - Mason でグローバル変数を定義する方法
はじめに
- Ubuntu デスクトップで mason をセットアップしようとしました。
- これは非常に単純なセットアップですが、masonbook.com と mansonhq.com の一部を読んだ後も、まだ問題がありました。
- 誰かが私にヒントをくれることを願っています。詳しくは下記をご覧ください。
ローカルサーバー
- Ubuntu 11.04 デスクトップ
- Mason 1.44 (Ubuntu に付属)
- perl/mason の初心者
ファイル
- mason.seedy2 - CGI スクリプトです。基本的には、グローバル変数 --> $user を設定します。index1.htmlで使いたい
- index1.html - シンプルな html ファイル
- apache.conf - 正しく実行したかどうかわかりません
エラー
apache.conf
index1.html
メイソン.スピーディ2
perl - Mason と Perl のコードを文書化するツール?
POD 以外に、Perl と Mason のコードを文書化するために利用できるツールは何ですか? 何を使用し、どのツールが私を助けるために利用できますか?
perl - Perl:Javascript::V8テンプレート-perlから
HTML :: Mason(またはMason)のようなテンプレートエンジンを探しているので、ソースコンポーネントをperlコードに「コンパイル」しますが、perl-codeの代わりにコンポーネントをJavaScriptコードに「コンパイル」し、Javascript::V8で実行/実行しますperlモジュール。
動機:安全なテンプレート言語の解決策を探しています。サーバーのセキュリティを損なうことなくユーザーを編集できるものです。JavaScriptはフル機能の言語であるため、それを使用することは、TTなどの一部の「ミニ言語」よりもおそらく優れています。私にとって最良の方法は、Moose/PerlではなくJoose/JavaScriptにコンパイルするためのMasonの拡張(書き直し)です。;)
そして、はい、Javascript :: V8を使用してperlからこれを実行したいのです。これは、Javascript :: V8 $context->bind_functionを介してすべてのperlの機能を非常に安全な方法で利用できるためです。
質問:
- 誰か知ってる?(CPANには何も見つかりませんでした)..。
編集:メイソンでは、例えば書くことができます
JSで上記のように書く可能性があるといいでしょう:
上記のソースはJavaScript(Joose)に「コンパイル」され、Javascript::V8で実行される必要があります。(Masonのように-ソースはperl / Mooseオブジェクトにコンパイルされ、perlで実行されます)...
ご覧のとおり、for(var i in list)
は「ミニ言語」ではなく、純粋なJSで記述されています…</ p>
perl - スタンドアロンのテンプレート言語としてMasonを使用するとエラーが発生します
G'day、
電子メールを生成するためのスタンドアロンのテンプレート言語としてHTML::Mason1.35を使用しようとしています。次のテストスクリプトについて考えてみます。
実行しようとすると、次のエラーが発生します。
コンパイラを使用せず、コンポーネントを解釈するだけで問題なく動作しますが、コンパイラを追加するとこのエラーが発生します。私がここで間違っていることの手がかりはありますか?