1

CatalystアプリでMooseハッシュを作成して、グローバルにアクセスできるようにしようとしています。my_app.pm

has 'hash' => ( 
    is => 'rw', 
    isa => 'Hashref'
);

ただし、デフォルトを追加しようとするとすぐに:

has 'hash' => ( 
    is => 'rw', 
    isa => 'Hashref',
    default => sub { { 
        'key' => 'val',
      }
    },
);

次に、Chrome開発者ツールコンソールに次のメッセージが表示されます。

Resource interpreted as Document but transferred with MIME type httpd/unix-directory

ページを読み込もうとするたびに。次に、ページが正しく読み込まれず、ページを読み込むたびに空のファイルをダウンロードするように強制しようとします。Mooseでデフォルトのハッシュを使用することはできませんmy_app.pmか?誰かが私が間違っていることを知っていますか?ありがとう!

4

2 に答える 2

0

だから私は自分が何を間違っていたのかを理解しました、そして残念ながらこれはそれらの「ドウ」の瞬間の1つです:)

Moose属性をハッシュとして定義するときは、次のようにする必要があります。

has 'hash' => ( 
    is => 'rw', 
    isa => 'HashRef'
);

うっかりスペルHashRefを間違えて使ってしまいHashrefました。助けてくれてありがとう!:)

于 2013-03-14T19:43:04.650 に答える
0
  1. アプリの設定方法に何らかの問題があります。エラー ページが表示されるはずのときに、上記のエラーが表示されます。

  2. デフォルトは無効です。sub { 'key' => 'val' }ハッシュリファレンスを返しません。2 つの項目 ('key' と 'val') のリストを返します。default => sub { +{ 'key' => 'val' } }代わりに試してください。

于 2013-03-14T05:49:34.087 に答える