설치가 다 끝나고 나는 에러

2026-04-09 (목) 16:00:57 467
그누7 설치가 완료하고 마지막 관리자페이지 이동 버튼을 클릭하면 아래와 같은 에러가 나오는데요. 어떤 부분이 문제가 있는 걸까요?

Failed to load components: Component bundle not loaded. Expected global variable: SirsoftAdminBasic. Ensure admin.blade.php includes the IIFE bundle script.
|

답변 2개 / 댓글 4개

안녕하세요. 답변이 늦은점 양해 말씀 드립니다.

문의해주신 내용과 이전에 올려주신 글 ( https://sir.kr/questions/564165 ) 을 참고한 바로는 nginx 프록시 관련 문제로 보입니다.

그누보드7은 템플릿의 JS/CSS 등 정적 파일을 웹서버가 직접 서빙하지 않고, Laravel API를 통해 서빙하는 구조입니다. 예를 들어, 브라우저가 /api/templates/assets/sirsoft-admin_basic/js/components.iife.js 경로에 접근하면, Laravel이 요청을 받아서 templates/sirsoft-admin_basic/dist/js/components.iife.js 파일을 찾아 응답하는 구조입니다.

현재 구성이 nginx(443) -> 프록시 -> php-fpm(8080) 구조이므로, 443 server 블록에서 /api/ 경로도 백엔드로 프록시되어야 합니다. 하지만 nginx에 정적 파일 확장자(.js, .css, .json 등)를 직접 처리하는 location 블록이 있거나, try_files에서 파일을 찾지 못해 404를 반환하는 경우 이 에러가 발생하는 것으로 보입니다.

443 server 블록에서, 이전에 SSE 해결을 위해 /install/api/ location을 추가하셨던 것처럼, /api/ 경로 전용 location 블록을 추가합니다.

예시:

server {
    listen 443 ssl;
    # ... SSL 설정 ...

    # 설치 SSE 대응 (이미 추가하신 블록)
    location ^~ /install/api/ {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_buffering off;
        proxy_read_timeout 600s;
    }

    # (추가) 그누보드7 API 경로
    # URL이 .js, .css, .json 등으로 끝나더라도 nginx가 직접 처리하면 안 됩니다.
    # 그누보드7은 이 경로를 통해 템플릿/모듈/플러그인 에셋을 서빙합니다.
    location /api/ {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # 나머지 요청
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

그리고 8080 server 블록에서는 아래와 같이 try_files가 정확히 설정되어 있는지 확인합니다:

예시:

server {
    listen 8080;
    root /var/www/g7/public;   # ← 그누보드7 설치 경로의 public 디렉토리
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_buffering off;   # SSE 지원용 (이미 추가하신 항목)
    }
}

추가로 아래 부분도 확인 부탁드립니다.

예를 들어, 아래와 같은 정적 파일 전용 location 블록이 있는 경우 작동이 되지 않을 수 있습니다.
 

# 이런 설정이 있으면 그누보드7 서빙이 작동하지 않음
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ {
    add_header Access-Control-Allow-Origin "*";
    expires max;
    access_log off;
}

정적 파일 캐싱이 필요하다면 /build/ 경로에만 적용 부탁드립니다.

location /build/ {
    expires max;
    add_header Cache-Control "public, immutable";
}

추가로, Varnish를 사용 중이시라면 nginx 설정 변경 후 Varnish 캐시 초기화도 함께 해주시기 바랍니다.
(이전 에러 응답이 캐싱되어 있을 수 있습니다)

만약, 위 내용으로 조치가 어렵다면 오류가 발생하는 상태에서 nginx.conf 전문을 올려주시면 해당 기준으로 저희가 다시 한번 점검해보겠습니다.

감사합니다.

답변에 대한 댓글 1개

답변 너무너무 감사합니다.
염치불구하고 내용이 길어 질문하기 새글로 등록을 했습니다.
https://sir.kr/questions/564296

안녕하세요. 번거로우시겠지만, 아래를 확인해주실수 있을까요?


<브라우저>

1. 브라우저에서 개발자도구 (Ctrl+Shift+I) 실행 후 에러가 발생하는 화면에서 새로고침
2. 네트워크 탭에서 /api/templates/assets/sirsoft-admin_basic/js/components.iife.js 요청의 응답 코드 확인 부탁드립니다.
(422인지, 404 인지, 500인지, 200 인지 등)
3. 응답 내용은 어떤 형태인지 확인 부탁드립니다. (내용이 비어 있는지 컴포넌트 컴파일 코드가 포함되어 있는지)

<터미널>
※ 그누보드7 설치 디렉토리에서 확인 부탁드립니다.

$ ls -al templates/sirsoft-admin_basic/dist/js/components.iife.js 했을 경우 해당 파일이 존재하는지

-> 존재하지 않는다면 템플릿 설치에 실패한 것으로 아래 명령 실행 부탁드립니다
$ php artisan template:uninstall sirsoft-admin_basic
$ php artisan template:install sirsoft-admin_basic && php artisan template:activate sirsoft-admin_basic

전달해주시면 저희 쪽에서 분석해보겠습니다.

감사합니다.

답변에 대한 댓글 3개

확인해보니 네트워크 탭에서 components.iife.js 요청에 대한 응답 코드는 없습니다.
https://inyourtalk.com 에서 바로 확인이 가능합니다.
그리고, components.iife.js 파일이 존재합니다.
새로 설치할 때 마다 에러가 조금씩 달라지는거 같아요. 설치가 끝나고 관리자 로그인 페이지로 갈 때 에러가 뜹니다.
이번에는 Failed to load components: Failed to fetch manifest: 404 이렇게 에러가 뜨네요;
파일이 존재하기는 하는데 혹시 몰라
$ php artisan template:uninstall sirsoft-admin_basic
$ php artisan template:install sirsoft-admin_basic && php artisan template:activate sirsoft-admin_basic
위 부분을 다시 적용해 봤는데, 상황은 똑같습니다.
Failed to load components: Component bundle not loaded. Expected global variable: SirsoftAdminBasic. Ensure admin.blade.php includes the IIFE bundle script.

DB에는 90개의 테이블이 생성이 되어 있습니다. 그리고 nginx+php-fpm, php8.4 버전을 사용하고 있습니다.
https://inyourtalk.com 에서 확인 가능합니다. 하루 정도는 작업없이 홈페이지 유지해 놓겠습니다.

답변을 작성하려면 로그인이 필요합니다.