まだ個人の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)