diff --git a/public/install/assets/js/installer.js b/public/install/assets/js/installer.js index 8eb4d17e..741b4359 100644 --- a/public/install/assets/js/installer.js +++ b/public/install/assets/js/installer.js @@ -1664,10 +1664,22 @@ ? lang('asset_url_mode_extension') : (detected === 'extensionless' ? lang('asset_url_mode_extensionless') : lang('asset_url_mode_unknown')); + // 경고 상태(확장자 미사용 자동 선택 / 확인 불가)는 "왜 그런지" 를 설명 문구로 + // 함께 보인다 — 짧은 라벨("확인 불가")만으로는 어떤 상황인지 알 수 없다. + // "확인 불가" 는 두 프로브가 모두 실패한 상태라 에셋 방식 문제가 아니라 + // 앱 미응답·프록시·CSP 등 다른 원인일 수 있으므로 그 내용을 상세히 안내한다. + let note = ''; + if (detected === 'extensionless') { + note = lang('asset_url_mode_detected_extensionless'); + } else if (detected === '') { + note = lang('asset_url_mode_detected_unavailable'); + } + const noteHtml = note ? `
${note}
` : ''; + // 카드 내부를 부분 수정하지 않고 통째로 다시 그린다 — 아이콘·수식자 클래스가 // renderSingleItemCard 안에서 statusClass 로 함께 결정되므로, 밖에서 일부만 // 건드리면 아이콘과 카드 색이 어긋난다. - slot.innerHTML = renderSingleItemCard(lang('asset_url_mode'), statusClass, label, '', false); + slot.innerHTML = renderSingleItemCard(lang('asset_url_mode'), statusClass, label, '', false) + noteHtml; } async function detectAssetUrlMode() { diff --git a/public/install/lang/en.php b/public/install/lang/en.php index 1b55ac6b..ad7ddad8 100644 --- a/public/install/lang/en.php +++ b/public/install/lang/en.php @@ -840,7 +840,7 @@ Firewalls or proxies may be blocking long-lived HTTP connections.', 'asset_url_mode_help' => 'Detected automatically from your server setup. A static-file optimization rule (e.g. nginx location ~* \\.(js|css|json|png|jpg|jpeg|gif|ico|svg|woff2?)$) can intercept extension URLs and make pages fail to load; choose no extensions in that case.', 'asset_url_mode_detected_extension' => 'Detected: file extensions work fine on this server.', 'asset_url_mode_detected_extensionless' => 'Detected: a static-file optimization rule (e.g. nginx location ~* \\.(js|css|json|...)$) intercepts extension URLs, so no extensions was selected.', - 'asset_url_mode_detected_unavailable' => 'Could not detect. If pages fail to load after installation, try switching to no extensions.', + 'asset_url_mode_detected_unavailable' => 'Could not detect the serving mode — neither the extension nor the extensionless probe URL responded. This is usually not an asset-mode issue but a sign that the app is not yet responding at this URL (PHP/routing) or that a proxy or security rule (e.g. CSP) is blocking the probe requests. This item does not block installation, so you can continue; if pages look blank afterward, switch to no extensions under Admin > Settings > General.', 'asset_url_mode_checking' => 'Checking…', 'asset_url_mode_unknown' => 'Unknown', 'core_update_github_url' => 'GitHub Repository URL', diff --git a/public/install/lang/ko.php b/public/install/lang/ko.php index 7f4c7dfb..b291dc79 100644 --- a/public/install/lang/ko.php +++ b/public/install/lang/ko.php @@ -840,7 +840,7 @@ ini_set(\'zlib.output_compression\', \'off\'); 'asset_url_mode_help' => '서버 설정을 자동으로 감지해 선택합니다. 정적 파일 최적화 규칙(nginx의 location ~* \\.(js|css|json|png|jpg|jpeg|gif|ico|svg|woff2?)$ 블록 등)이 확장자 주소를 가로채면 화면이 뜨지 않는데, 그 경우 확장자 미사용을 선택하세요.', 'asset_url_mode_detected_extension' => '감지 결과: 확장자를 사용할 수 있는 환경입니다.', 'asset_url_mode_detected_extensionless' => '감지 결과: 정적 파일 최적화 규칙(nginx location ~* \\.(js|css|json|...)$ 블록 등)이 확장자 주소를 가로채고 있어 확장자 미사용을 선택했습니다.', - 'asset_url_mode_detected_unavailable' => '감지하지 못했습니다. 설치 후 화면이 뜨지 않으면 확장자 미사용으로 바꿔 보세요.', + 'asset_url_mode_detected_unavailable' => '확장자 있는 주소와 없는 주소 모두 응답하지 않아 서빙 방식을 감지하지 못했습니다. 에셋 방식 자체의 문제라기보다, 앱이 아직 이 주소에서 정상 응답하지 않거나(PHP·라우팅 설정) 프록시·보안 규칙(CSP 등)이 프로브 요청을 막고 있을 가능성이 큽니다. 이 항목은 설치를 막지 않으니 계속 진행할 수 있으며, 설치 후 화면이 비어 보이면 관리자 > 환경설정 > 일반에서 확장자 미사용으로 바꿔 보세요.', 'asset_url_mode_checking' => '확인 중…', 'asset_url_mode_unknown' => '확인 불가', 'core_update_github_url' => 'GitHub 저장소 URL',