簡體   English   中英

Django/Gunicorn/Nginx:似乎提供了錯誤的 JS 文件

[英]Django/Gunicorn/Nginx: wrong JS files seems to be served

我的項目在本地工作

我已經在遠程服務器中使用 / / 部署了我的項目

我有一個帶有選項列表的選擇按鈕(id = id_patient)。 當用戶選擇一個選項時,將使用 ajax 請求顯示與該選項相關的信息。 但在遠程服務器上,不顯示信息。

當我使用我的網絡瀏覽器調試工具(見圖片)查看時,它看起來不是提供的好的 js 文件

但是在我服務器上的靜態文件夾中,它是好的 js 文件...

// affichage des informations sur le patient sélectionné pour la ré-allocation
$("#id_patient").on("click", function (event) {

    var csrftoken = getCookie('csrftoken');

    if ($(this).val() != "") {
        $.ajax({
            type: "POST",
            url: $("#form_reallocation").data("patient-url"),
            data: {
                csrfmiddlewaretoken: csrftoken,
                'patient': $(this).val(),
            },
            dataType: 'html',
            success: function (data) {
                $("#information_patient").html(data);
            }

        });
    } else {
        $("#information_patient").children().remove();
    }

});

在此處輸入圖片說明

為了收集新的靜態文件,我run python manage.py collectstaticrun python manage.py collectstatic文件,但我有一條警告消息,表明靜態文件中可能存在重復:

找到另一個目標路徑為“randomization/js/script.js”的文件。 它將被忽略,因為只收集第一個遇到的文件。 如果這不是您想要的,請確保每個靜態文件都有唯一的路徑。

我該如何解決這個問題?

設置.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'crispy_forms',
    'widget_tweaks',
    'bootstrap4',

    'registration.apps.RegistrationConfig',
    'monitor.apps.MonitorConfig',
    'randomization.apps.RandomizationConfig',
    'parameters.apps.ParametersConfig',
    'unblind.apps.UnblindConfig',
    'pharmacy.apps.PharmacyConfig',
    'export.apps.ExportConfig',
    'randomization_pk.apps.RandomizationPkConfig',

    'django_extensions',
    'debug_toolbar',

    'partial_date',
    'safedelete',
    'simple_history',

]

STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR,'static'),
    os.path.join(BASE_DIR,'randomization/static'),
    os.path.join(BASE_DIR,'unblind/static'),
    os.path.join(BASE_DIR,'pharmacy/static'),
)
STATIC_ROOT = '/home/test/intensetbm_static'

如果您在生產模式下運行,並且 DEBUG=False,則必須配置網絡服務器來提供靜態文件。

另一種方法是使用白噪聲將靜態文件作為中間件提供服務,它不會處理 Django 管道以提供靜態文件。

嘗試刪除 STATICFILES_DIRS,默認情況下 Django 在 INSTALLED_APPS 中查找所有“靜態”文件夾,並使用 STATIC_ROOT 的相對路徑。

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

之后,運行:

python manage.py collectstatic

再次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM