0

まだ個人のWebサーバーで作業しているときに、Nitrogen内でhtml5オーディオおよびビデオタグを使用しようとしていました。

#audioレコードも#videoレコードもないので、窒素によって生成されたページに直接htmlテキストを挿入することにしました。結果は次のようになります。

<audio controls preload="metadata"><source src="../../My Music/subdir/song.ogg" type="audio/ogg"  /source>audio tags not supported</audio>

私の理解では、オーディオタグはクライアントブラウザによって直接解釈されることになっており、コードには窒素IDやイベントオブザーバーがないため、これは機能するはずです。

しかし、Firefoxからこのコードを参照すると、コントロールが開いているのが簡単にわかり、オーディオ要素が消えてしまいます。

窒素によって生成されたコード全体をコピーして貼り付け(htmlソースページを表示し、窒素プロジェクトの元にあるファイルにコピーして貼り付け)、ブラウザーで開くと、正常に機能します。窒素プロジェクトの検索統計を想定すると、相対パスは正しいです。私も絶対パスを試しましたが、成功しませんでした。

知らない

  • 窒素がURL分析で行うように、「.._ .._ Mymusic_subdir_song.ogg」という形式のファイル名を作成する場合、
  • または、別のディレクトリを使用してパスを開始する場合は、
  • またはそれが単に私が考えているように機能しない場合。
  • ..。

編集:いくつかの補足情報:

次の変更を行いました。

site / staticディレクトリにいくつかのoggファイルを含む1つのディレクトリを作成し、site/staticに静的test.htmlファイルを移動します。test.htmlを直接開いた場合->OK。Webサイトからリダイレクトした場合->OKではありません。

窒素アプリケーションルートのディレクトリのコピーと私のWebサイトからのアクセスを使用した同じテスト->OKではありません

Webページの情報があいまいなため、PCに存在しないファイルにアクセスするようにtest.htmlを変更しました->同じ動作。

デバッガーを使用して、リクエストがどのように管理されているかを理解し、続行すると思います...

編集2:

デバッガーを使用して、wf_core:run_catched()が数回呼び出されていることを確認できます。最初の呼び出しは、静的ファイルにリダイレクトする私のページのイベントを処理するときです。

静的htmlファイル自体を処理する2回目。

my_music / song.oggに等しいパスでfinish_static_request()を3回処理すると、回答の処理で迷子になります。別のwf_core:run_catched()が並行して呼び出されましたが、私はそれに従いませんでした...

ファイルにアクセスできることを確認できました。htmlファイルにいくつかのオーディオタグを追加し、DownloadHelperFirefoxプラグインを使用して既存のファイルを「ダウンロード」することができました。

私の理解では、パスは正しいです(少なくとも、ファイルをsite / staticのサブディレクトリに配置すると)、サーバーはファイルを取得して送信でき、ブラウザーはオーディオタグとビデオタグを認識しますが、リンクオーディオタグ内にタイプ定義を追加しましたが、埋め込まれたオーディオ/ビデオリーダーとファイルの間は失われます。

続行するアイデアはありますか?

編集3:

ついにできた。Chopsが示唆しているように、パスを定義するのではなく、型の関連付けを定義するために、inetsサーバー構成に入る必要がありました。etc / inets_httpd.erlenvに次の定義を追加しましたが、機能します。

{mime_types, [
    {"css", "text/css"}, 
    ...
    {"ogg","audio/ogg"},
    {"webm","video/webm"}
]}

:o)

4

1 に答える 1

2

属性( "../../My Music / subdir / song.ogg")の内容に基づいて、urlNitrogenから提供される場合の問題は、リクエスト(デフォルトの127.0.0.1を使用していると仮定した場合)です。 8000)オーディオはURL「http://127.0.0.1:8000/MyMusic/subdir/song.ogg」になります

標準の窒素インストールを使用している場合は、必要な曲ファイルをsite/staticディレクトリ(おそらく「songs」サブディレクトリ)に配置します。

次に、url属性を「/songs/mysong.ogg」(またはsite/static使用したパス)に変更します。

注:サーバーの選択(Webmachineなど)によっては、サーバーの特定の構成ファイルをいじって、静的パスの新しいディレクトリを処理するように指示する必要がある場合があります。ヘルプについては、Nitrogenサイトの構成ドキュメントを確認してください。

それ以外に、窒素で生のHTMLを出力することについて特別なことは何もありません。ここでの問題は、実際にはサーバーに送信されるリクエストのパスに関連していると私は理解しています。

于 2013-01-07T17:23:31.633 に答える