0

pdf.js は Web ワーカーを使用します。

<script type="text/javascript">
    // Specify the main script used to create a new PDF.JS web worker.
    // In production, change this to point to the combined `pdf.js` file.
    PDFJS.workerSrc = '../../src/worker_loader.js';
</script>

しかし、私が理解しているように、Web ワーカーは JavaScript ファイルの元の URL 以外にはアクセスできません。

絶対 URL から Web ワーカー スクリプトを読み込むことはできますか?

AWS EC2 でサイトをホストしていますが、AWS S3 から静的ファイルを提供しています。

したがって、次の行に相当するものを実行しようとするとエラーが発生します: PDFJS.workerSrc = '../../src/worker_loader.js'; .js をロードできないこと。

問題を正しく理解できましたか? もしそうなら、これを回避するためにどのようなオプションが必要ですか?

4

1 に答える 1

1

2 つの方法が考えられるようです。ワーカーをオフにするか:

pdf.js のから:

// Disable workers to avoid yet another cross-origin issue (workers
// need the URL of // the script to be loaded, and currently do not allow
// cross-origin scripts)
// PDFJS.disableWorker = true;

またはasync5で提案されているように、Django と同じ Apache VirtualHost で pdf.js を提供するのは比較的簡単です。一部のファイルは URL によって静的メディアとして提供され、他のファイルは Django への mod_wsgi インターフェイスを使用します。こちらのドキュメントは、Apache の展開については比較的簡単に理解できます。ローカル開発の場合、urls.py に追加された次のスニペットは、pdf.js を提供するために簡単に適応できます。

from django.conf import settings

# ... the rest of your URLconf goes here ...

if settings.DEBUG:
    urlpatterns += patterns('',
        url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
            'document_root': settings.MEDIA_ROOT,
        }),
   )

settings.py で MEDIA_URL と MEDIA_ROOT が適切に設定されている

どちらもパフォーマンスに影響します。

于 2013-02-15T07:39:20.307 に答える