1

Dajaxice 0.5.4.1を使用している Python 2.7 で実行されている Django 1.4 プロジェクトがあります。開発マシン (Windows 7) にセットアップしましたが、すべてが完全に機能します。ただし、アプリを運用サーバー (Ubuntu 12.04) にデプロイするdajaxice.core.jsと、ファイルに対して 404 エラーが発生し、何があってもこの問題を解決できません。本番サーバーは、すべてのソフトウェアのまったく同じバージョンで動作します。

私のプロジェクト構造は次のようになります。

/myproject
/myproject/myproject-static/ <-- all the static files are here
/myproject/myproject-static/css/
/myproject/myproject-static/img/
/myproject/myproject-static/js/
/myproject/templates/

/myproject/myproject/
/myproject/main/
/myproject/app1/
/myproject/app2/
/myproject/app3/
etc.

ここでDajaxice のインストール手順に従って、すべてを所定の場所に配置しました ( settings.py.˙urls.py andbase.html` ファイル内)。

私のsettings.pyファイルには次の値もあります。

from unipath import Path
PROJECT_ROOT = Path(__file__).ancestor(3)

STATIC_ROOT = ''
STATIC_URL = '/myproject-static/'
STATICFILES_DIRS = (
    PROJECT_ROOT.child('myproject-static'),
)
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'dajaxice.finders.DajaxiceFinder',
)

DAJAXICE_MEDIA_PREFIX = "dajaxice"
DAJAXICE_DEBUG = True

ファイルに次のようなディレクティブAliasがあります。django.conf

Alias /myproject-static/ "/path/to/myproject/myproject-static/"

私はcollectstatic実稼働サーバーで行い、プロジェクトのルートにあるいくつかのフォルダー内にすべての静的ファイルを収集しました。そのため、デプロイした Web サイトを見ると、CSS が適切に適用され、JavaScript が正常に機能し、サイト内のナビゲーションが意図したとおりに機能していることがわかります。含まれていないため、Ajaxが完全に壊れていることを除いて、すべて問題dajaxice.core.jsありません。

静的を収集した後の私のプロジェクト フォルダー構造は次のようになります。

/myproject
/myproject/myproject-static/ <-- all the static files are originally here
/myproject/myproject-static/css/
/myproject/myproject-static/img/
/myproject/myproject-static/js/
/myproject/templates/

/myproject/admin/ <-- folder created with 'collectstatic' command
/myproject/css/ <-- folder created with 'collectstatic' command
/myproject/dajaxice/ <-- dajaxice.core.js is located here
/myproject/django_extensions/ <-- folder created with 'collectstatic' command
/myproject/img/ <-- folder created with 'collectstatic' command
/myproject/js/ <-- folder created with 'collectstatic' command

/myproject/myproject/
/myproject/main/
/myproject/app1/
/myproject/app2/
/myproject/app3/
etc.

ここで静的ファイルに何か完全に問題がありますか?
この単純なエラーを修正するには、他に何を試みるべきですか?

4

2 に答える 2

1

残りのアセットがフォルダdajaxice.core.js内にあるかどうかを確認しましたか? static/dajaxiceそうでない場合、問題は の構成ミスに関連している可能性があります。dajaxice のインストールをもう一度STATICFILES_FINDERS確認してください。

collectstatic と dajaxice に関するもう 1 つのよくある問題は、--linkAre you using this option? を使用して最初に実行することです。

お役に立てれば

于 2013-01-24T23:08:28.170 に答える
1

私はこの問題に数時間取り組んでいます。すべての dajax および dajaxice 設定が共通の基本設定ファイルにあったにもかかわらず、私の開発環境ではすべてがうまく機能しましたが、テスト サーバーではそうではなかったため、それはクレイジーでした。標準ルートを使用して動作させることはできませんでした。しかし、これは非常に簡単な修正です:

1) dajaxice.core.js を任意の静的ディレクトリにダウンロードします。プロジェクト ルートの dajaxice ディレクトリに js があります。

プロジェクト/dajaxice/dajaxice.core.js

私の場合、ファイルを他のすべての js ライブラリと一緒に static/js に配置しました。

2) Web ページで、これを置き換えます。

{% dajaxice_js_import %}

js ライブラリへの通常の日常的なリンクを使用します。私の場合:

<script src="/static/js/dajaxice.core.js" type="text/javascript"></script>

残念ながら、このパッチは開発済みコードに対してのみ機能します。開発環境で使用した場合、新しい dajaxice コードは元の project/dajaxice/ の場所に登録されるため、新しいコードの開発後にファイルを static にコピーする必要があります。

于 2014-05-22T16:12:48.180 に答える