All Articles

Front End Library - web project

Considerations

  • Build
  • Version
  • Security Settings

만들고 있는 웹 프로젝트는 Front/Back 구분하지 않음

프론트 라이브러리는 NPM 으로 다운로드

Build

NPM

  • package.json

mv, pom.xml 사용해서 빌드함

package 순서에 npm install 같이 필요함

→ plugin 사용

<!--index.html-->
<!--w npm-->
<link
  rel="stylesheet"
  href="/node_modules/bootstrap/dist/css/bootstrap.min.css"
/>
<!--w/o npm-->
<link
  href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css"
/>

Version

.gitignore

### NPM ###
src/main/resources/static/node_modules

Security Settings

Spring boot 정적 리소스 제공

  • src/main/resources/static

/node_modules/** 요청에는 시큐리티 필터를 적용하지 않도록 설정한다.

// SecurityConfig.java
@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring()
            .mvcMatchers("/node_modules/**")
            .requestMatchers(PathRequest.toStaticResources().atCommonLocations());
}

Thymeleaf Fragment

https://www.thymeleaf.org/doc/articles/layouts.html

재사용 가능한 부분

해더, 네비게이션 바, 풋터

Library

<!--fragments.html-->
<link rel="stylesheet" href="/node_modules/font-awesome/css/font-awesome.min.css">
<script src="/node_modules/jquery/dist/jquery.min.js"></script>
<script src="/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="/node_modules/jdenticon/dist/jdenticon.min.js"></script>

폰트어썸 아이콘 사용하기

  • <i class=”fa fa-XXXX”>

Jdenticon으로 아바타 생성하기