[英]JS/Jquery issue when deploying Django site on with Gunicorn/Nginx (on DigitalOcean)
[英]Django/Gunicorn/Nginx: wrong JS files seems to be served
我的項目在本地工作
我已經在遠程服務器中使用django / gunicorn / supervisor部署了我的項目
我有一個帶有選項列表的選擇按鈕(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 collectstatic
並run 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.