템플렛을 가공하고 있는 동안 과실은 일어났다.
The following has evaluated to null or missing:
==> cur_group123423.img32.getAttribute("alt")  [in template "20096#20122#159954" at line 402, column 265]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: ${cur_group123423.img32.getAttribute(...  [in template "20096#20122#159954" at line 402, column 263]
----
1<script> 
2var BufferPageTemplateViewMore = document.createElement('style'); 
3BufferPageTemplateViewMore.innerHTML = ` 
4.txtp25_content h2{ 
5color: #101828; 
6font-family: Maven Pro; 
7font-size: 20px; 
8font-style: normal; 
9font-weight: 500; 
10line-height: 120%; 
11
12.tdtxtp_img_col_12{ 
13    max-width: 100%; 
14    object-fit: cover; 
15    aspect-ratio: 1128/368; 
16    object-position: center; 
17
18 
19.tdtxtp_img_col_8{ 
20    max-width: 100%; 
21    object-fit: cover; 
22    aspect-ratio: 744/368; 
23    object-position: center; 
24
25 
26.tdtxtp_img_col_6{ 
27    max-width: 100%; 
28    object-fit: cover; 
29    aspect-ratio: 552/368; 
30    object-position: center; 
31
32 
33.tdtxtp_img_col_4{ 
34    max-width: 100%; 
35    object-fit: cover; 
36    aspect-ratio: 552/368; 
37    object-position: center; 
38
39 
40 
41@media (max-width: 767px) { 
42.tdtxtp_img_col_12{ 
43    max-width: 100%; 
44    object-fit: cover; 
45    aspect-ratio: 388/257; 
46    object-position: center; 
47
48 
49.tdtxtp_img_col_8{ 
50    max-width: 100%; 
51    object-fit: cover; 
52    aspect-ratio: 744/239; 
53    object-position: center; 
54
55 
56.tdtxtp_img_col_6{ 
57    max-width: 100%; 
58    object-fit: cover; 
59    aspect-ratio: 360/240; 
60    object-position: center; 
61
62 
63.tdtxtp_img_col_4{ 
64    max-width: 100%; 
65    object-fit: cover; 
66    aspect-ratio: 360/240; 
67    object-position: center; 
68
69
70 
71   .tdtxtp_bg_gray{ 
72	    background: var(--gray-100, #F2F4F7); 
73
74	 .tdtxtp_bg_white{ 
75	    background: #ffffff; 
76
77	 .tdtxtp_title-highlighted{ 
78	    color: var(--primary-blue-500, #00558F) !important; 
79
80	 .tdtxtp_nonpadding{ 
81	    padding: 0 !important; 
82
83   .tdtxtp_title{ 
84	    margin-bottom: 32px; 
85	    font-family: 'Maven Pro'; 
86      font-style: normal; 
87      font-weight: 500; 
88      font-size: 32px; 
89      line-height: 120%; 
90      color: #101828; 
91      flex: none; 
92      order: 0; 
93      flex-grow: 0; 
94
95	 .tdtxtp_name{ 
96	    margin-left: 24px; 
97			margin-bottom: 62px; 
98	    z-index: 2; 
99	    font-family: 'Maven Pro'; 
100      font-style: normal; 
101      font-weight: 500; 
102      font-size: 32px; 
103      line-height: 120%; 
104      color: #FCFCFD; 
105      flex: none; 
106      order: 0; 
107      flex-grow: 0; 
108	    bottom: 6px; 
109
110	 .tdtxtp_imgps{ 
111	    margin-left: 24px; 
112			margin-bottom: 24px; 
113	    bottom: 0px; 
114			z-index: 2; 
115
116	 .tdtxtp_img{ 
117	    border-radius: 0 10px; 
118			 
119
120	 .tdtxtp_nonpadding{ 
121	    padding: 0px !important; 
122
123	 .tdtxtp_center { 
124      top: 90%; 
125      width: 100%; 
126      text-align: center; 
127
128	 .tdtxtp_viewmore { 
129	    position: relative; 
130      font-family: 'Maven Pro'; 
131      font-style: normal; 
132      font-weight: 500; 
133      font-size: 16px; 
134      line-height: 18px; 
135      text-transform: capitalize; 
136      color: #FCFCFD; 
137			padding-bottom: 8px; 
138			display: block; 
139
140	 .tdtxtp_viewmore:hover { 
141      color: #FCFCFD; 
142
143	  
144	 @keyframes linecss { 
145  0% { 
146    width: 100%; 
147
148  50% { 
149    width: 0; 
150
151  100% { 
152    width: 100%; 
153
154
155 
156.tdtxtp_imgps a:hover{ 
157text-decoration: none; 
158
159.tdtxtp_imgps a:hover:before { 
160  transform-origin: left; 
161  animation: linecss 0.6s; 
162
163.tdtxtp_imgps a:before { 
164  content: ''; 
165  height: 1px; 
166  width: 100%; 
167  position: absolute; 
168  bottom: 0; 
169  left: 0; 
170  background-color: #FCFCFD; 
171  transform-origin: right; 
172
173.buffer-content-hover{ 
174background: linear-gradient(360deg, rgba(45, 35, 0, 0.80) 0%, rgba(45, 35, 0, 0.00) 100%); 
175border-radius: 0 16px 0 16px; 
176
177.buffer-content-hover img { 
178  transition: all 0.5s ease; 
179
180 
181.buffer-content-hover:hover img{ 
182 transform: scale(1.07); 
183
184 
185 .buffer-content-hover > a:before { 
186    position: absolute; 
187    width: calc(100%); 
188    height: 100%; 
189    content: ""; 
190    left: 0; 
191    top: 0; 
192    z-index: 1; 
193		border-radius: 0 16px 0 16px; 
194    background: linear-gradient(360deg, rgba(45, 35, 0, 0.80) 0%, rgba(45, 35, 0, 0.00) 100%); 
195
196 
197 
198   @media (min-width: 1200px) { 
199	    .tdtxtp_padding { 
200         padding-top: 64px; 
201			   padding-bottom: 40px; 
202
203
204	  
205	 @media (min-width: 768px) and (max-width: 1199px) 
206
207	    .tdtxtp_name {    
208        font-size: 28px;  
209			  margin-left: 24px; 
210			  margin-bottom: 58px; 
211
212			.tdtxtp_padding { 
213         padding-top: 48px; 
214			   padding-bottom: 24px; 
215
216
217	  
218	  .portlet-journal-content  .journal-content-article .tdtxtp_bg_gray img { 
219    height: 257px; 
220    object-fit: cover; 
221    width: 100%; 
222
223 
224.portlet-journal-content .journal-content-article .tdtxtp_bg_gray picture { 
225    width: 100%; 
226
227 
228@media (min-width: 768px){ 
229   .portlet-journal-content  .journal-content-article .tdtxtp_bg_gray img { 
230    height: 240px; 
231
232
233 
234 
235@media (min-width: 992px){ 
236  .portlet-journal-content  .journal-content-article .tdtxtp_bg_gray img { 
237    height: 386px; 
238
239
240 
241	 @media (max-width: 767px) { 
242	   .tdtxtp_title{ 
243		    font-size: 28px;  
244
245     .tdtxtp_name {    
246       font-size: 28px;  
247			 margin-left: 20px; 
248			 margin-bottom: 58px; 
249
250		 .tdtxtp_padding { 
251         padding-top: 32px; 
252			   padding-bottom: 8px; 
253				 padding-left: 8px; 
254				 padding-right: 8px; 
255
256			.tdtxtp_imgps{ 
257    margin-left: 20px; 
258
259
260 
261  @media (max-width: 575px) 
262
263	    .tdtxtp_name {    
264        font-size: 24px;  
265
266
267`; 
268 
269document.head.appendChild(BufferPageTemplateViewMore); 
270</script> 
271 
272<#assign groupId = themeDisplay.getScopeGroupId()>				 
273						 
274					<#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")> 
275						 
276					<#assign group = groupLocalService.getGroup(groupId)> 
277							 
278					<#assign friendlyURL = group.getFriendlyURL()> 
279						 
280					<#assign locale = themeDisplay.getLocale()> 
281							 
282					<#assign region = themeDisplay.getLocale().getCountry()> 
283						 
284					<#assign language = themeDisplay.getLocale().getLanguage()> 
285<#if (bgcolor312.getData())??> 
286	 <#if (bgcolor312.getData()) == "gray"> 
287	    <div class="tdtxtp_bg_gray"> 
288	 <#else > 
289	    <div class="tdtxtp_bg_white"> 
290	 </#if> 
291			   <div class="container tdtxtp_padding"> 
292				    <#if (title31.getData())?? && (title31.getData()) != ""> 
293						<#if getterUtil.getBoolean(is_highlighted_title.getData())> 
294               <h1 class="tdtxtp_title col-12 tdtxtp_title-highlighted"> 
295									${title31.getData()} 
296						   </h1> 
297            <#else> 
298               <h1 class="tdtxtp_title col-12"> 
299									${title31.getData()} 
300						   </h1> 
301            </#if> 
302            </#if> 
303						<div class="d-flex flex-wrap"> 
304						   <#if group123423.getSiblings()?has_content> 
305	                <#list group123423.getSiblings() as cur_group123423> 
306									 
307									   <#assign viewURL23 = cur_group123423.LinkToLayout72883470.getFriendlyUrl()> 
308									   <#assign originalText = viewURL23?replace("/web"+friendlyURL, "")> 
309	                   <#assign replacedText = originalText?replace("/"+language + "/", friendlyURL+"/"+language + "/")> 
310	                   <#assign urlParts = replacedText?split("?")> 
311	                   <#assign urlWithoutQueryString  = urlParts[0]?replace("/web/" + region, "")> 
312										 <#if !(urlWithoutQueryString?contains(friendlyURL+"/"+language + "/"))>  
313										    <#assign urlWithoutQueryString  = friendlyURL+"/"+language + urlWithoutQueryString> 
314										 </#if> 
315									 
316									   <#assign linkPage = cur_group123423.TextLinkToPage.getData()>								  
317										 <#if !(linkPage?contains("https://"))>  
318										    <#assign linkOutPage  = friendlyURL + "/" + language + linkPage> 
319												<#else> 
320												<#assign linkOutPage  = linkPage> 
321										 </#if> 
322										  
323										  
324		                 <#if (cur_group123423.style312.getData())??> 
325										  
326 
327												<#if (cur_group123423.style312.getData()) == "Col-12"> 
328												   <div class="col-12 col-md-12 mb-4 "> 
329													  <div class="buffer-content-hover" style="overflow: hidden; border-radius: 0 16px;"> 
330	                            <#if (cur_group123423.LinkToLayout72883470.getFriendlyUrl())?? && cur_group123423.LinkToLayout72883470.getFriendlyUrl() != ""> 
331	                            <a data-senna-off="true" class="d-flex position-relative" aria-label="${cur_group123423.name123.getData()}" href="${urlWithoutQueryString}"> 
332															<img class="tdtxtp_img tdtxtp_img_col_6 tdtxtp_img_col_6 position-relative" style="width:100%;" src="${cur_group123423.img32.getData()}" alt="${cur_group123423.img32.getAttribute("alt")}" /> 
333													      </a> 
334														</#if> 
335														<#if (cur_group123423.TextLinkToPage.getData())?? && cur_group123423.TextLinkToPage.getData() != "" && cur_group123423.LinkToLayout72883470.getFriendlyUrl() == ""> 
336	                            <a data-senna-off="true" class="d-flex position-relative" aria-label="${cur_group123423.name123.getData()}" href="${linkOutPage}"> 
337															<img class="tdtxtp_img tdtxtp_img_col_6 tdtxtp_img_col_6 position-relative" style="width:100%;" src="${cur_group123423.img32.getData()}" alt="${cur_group123423.img32.getAttribute("alt")}" /> 
338													      </a> 
339														</#if> 
340													       <div class=" tdtxtp_name  position-absolute col-8 tdtxtp_nonpadding"> 
341															      <#if (cur_group123423.name123.getData())??> 
342	                                     ${cur_group123423.name123.getData()} 
343                                    </#if> 
344															   </div> 
345															   <div style="cursor: pointer;" class=" position-absolute tdtxtp_imgps "> 
346															      <#if (cur_group123423.LinkToLayout72883470.getFriendlyUrl())?? && cur_group123423.LinkToLayout72883470.getFriendlyUrl() != ""> 
347															      <a data-senna-off="true" class="tdtxtp_viewmore" href="${urlWithoutQueryString}"> 
348																       ${languageUtil.get(locale, "donate.view-more")} 
349																    </a> 
350																 </#if> 
351																 <#if (cur_group123423.TextLinkToPage.getData())?? && cur_group123423.TextLinkToPage.getData() != "" && cur_group123423.LinkToLayout72883470.getFriendlyUrl() == ""> 
352															      <a data-senna-off="true" class="tdtxtp_viewmore" href="${linkOutPage}"> 
353																       ${languageUtil.get(locale, "donate.view-more")} 
354																    </a> 
355																 </#if> 
356															   </div> 
357															</img> 
358															</div> 
359										       </div> 
360												</#if> 
361												<#if (cur_group123423.style312.getData()) == "Col-8"> 
362												   <div class="col-md-8 col-12 mb-4 "> 
363													 <div class="buffer-content-hover" style="overflow: hidden; border-radius: 0 16px;"> 
364	                             <#if (cur_group123423.LinkToLayout72883470.getFriendlyUrl())?? && cur_group123423.LinkToLayout72883470.getFriendlyUrl() != ""> 
365	                            <a data-senna-off="true" class="d-flex position-relative" aria-label="${cur_group123423.name123.getData()}" href="${urlWithoutQueryString}"> 
366															<img class="tdtxtp_img tdtxtp_img_col_6 tdtxtp_img_col_6 position-relative" style="width:100%;" src="${cur_group123423.img32.getData()}" alt="${cur_group123423.img32.getAttribute("alt")}" /> 
367													      </a> 
368														</#if> 
369														<#if (cur_group123423.TextLinkToPage.getData())?? && cur_group123423.TextLinkToPage.getData() != "" && cur_group123423.LinkToLayout72883470.getFriendlyUrl() == ""> 
370	                            <a data-senna-off="true" class="d-flex position-relative" aria-label="${cur_group123423.name123.getData()}" href="${linkOutPage}"> 
371															<img class="tdtxtp_img tdtxtp_img_col_6 tdtxtp_img_col_6 position-relative" style="width:100%;" src="${cur_group123423.img32.getData()}" alt="${cur_group123423.img32.getAttribute("alt")}" /> 
372													      </a> 
373														</#if> 
374																 <div class=" tdtxtp_name  position-absolute col-8 tdtxtp_nonpadding"> 
375															      <#if (cur_group123423.name123.getData())??> 
376	                                     ${cur_group123423.name123.getData()} 
377                                    </#if> 
378															   </div> 
379															   <div style="cursor: pointer;" class=" position-absolute tdtxtp_imgps"> 
380															      <#if (cur_group123423.LinkToLayout72883470.getFriendlyUrl())?? && cur_group123423.LinkToLayout72883470.getFriendlyUrl() != ""> 
381															      <a data-senna-off="true" class="tdtxtp_viewmore" href="${urlWithoutQueryString}"> 
382																       ${languageUtil.get(locale, "donate.view-more")} 
383																    </a> 
384																 </#if> 
385																 <#if (cur_group123423.TextLinkToPage.getData())?? && cur_group123423.TextLinkToPage.getData() != "" && cur_group123423.LinkToLayout72883470.getFriendlyUrl() == ""> 
386															      <a data-senna-off="true" class="tdtxtp_viewmore" href="${linkOutPage}"> 
387																       ${languageUtil.get(locale, "donate.view-more")} 
388																    </a> 
389																 </#if> 
390															   </div> 
391															</img> 
392															</div> 
393										       </div> 
394												</#if> 
395												<#if (cur_group123423.style312.getData()) == "Col-6"> 
396												   <div class="col-md-6 col-12 mb-4 "> 
397													  <div class="buffer-content-hover" style="overflow: hidden; border-radius: 0 16px;"> 
398														 
399												 
400													  <#if (cur_group123423.LinkToLayout72883470.getFriendlyUrl())?? && cur_group123423.LinkToLayout72883470.getFriendlyUrl() != "" > 
401	                            <a data-senna-off="true" class="d-flex position-relative" aria-label="${cur_group123423.name123.getData()}" href="${urlWithoutQueryString}"> 
402															<img class="tdtxtp_img tdtxtp_img_col_6 tdtxtp_img_col_6 position-relative" style="width:100%;" src="${cur_group123423.img32.getData()}" alt="${cur_group123423.img32.getAttribute("alt")}" /> 
403													      </a> 
404														</#if> 
405														<#if (cur_group123423.TextLinkToPage.getData())?? && cur_group123423.TextLinkToPage.getData() != "" && cur_group123423.LinkToLayout72883470.getFriendlyUrl() == ""> 
406	                            <a data-senna-off="true" class="d-flex position-relative" aria-label="${cur_group123423.name123.getData()}" href="${linkOutPage}"> 
407															<img class="tdtxtp_img tdtxtp_img_col_6 tdtxtp_img_col_6 position-relative" style="width:100%;" src="${cur_group123423.img32.getData()}" alt="${cur_group123423.img32.getAttribute("alt")}" /> 
408													      </a> 
409														</#if> 
410																 
411																<div class=" tdtxtp_name  position-absolute col-10 tdtxtp_nonpadding"> 
412															      <#if (cur_group123423.name123.getData())??> 
413	                                     ${cur_group123423.name123.getData()} 
414                                    </#if> 
415															   </div> 
416															   <div style="cursor: pointer;" class=" position-absolute tdtxtp_imgps"> 
417																  
418																 <#if (cur_group123423.LinkToLayout72883470.getFriendlyUrl())?? && cur_group123423.LinkToLayout72883470.getFriendlyUrl() != ""> 
419															      <a data-senna-off="true" class="tdtxtp_viewmore" href="${urlWithoutQueryString}"> 
420																       ${languageUtil.get(locale, "donate.view-more")} 
421																    </a> 
422																 </#if> 
423																 <#if (cur_group123423.TextLinkToPage.getData())?? && cur_group123423.TextLinkToPage.getData() != "" && cur_group123423.LinkToLayout72883470.getFriendlyUrl() == ""> 
424															      <a data-senna-off="true" class="tdtxtp_viewmore" href="${linkOutPage}"> 
425																       ${languageUtil.get(locale, "donate.view-more")} 
426																    </a> 
427																 </#if> 
428																  
429															   </div> 
430															</img> 
431															</div> 
432										       </div> 
433												</#if> 
434												<#if (cur_group123423.style312.getData()) == "Col-4"> 
435												   <div class="col-md-4 col-12 mb-4 "> 
436													 <div class="buffer-content-hover" style="overflow: hidden; border-radius: 0 16px;"> 
437	                             <#if (cur_group123423.LinkToLayout72883470.getFriendlyUrl())?? && cur_group123423.LinkToLayout72883470.getFriendlyUrl() != "" > 
438	                            <a data-senna-off="true" class="d-flex position-relative" aria-label="${cur_group123423.name123.getData()}" href="${urlWithoutQueryString}"> 
439															<img class="tdtxtp_img tdtxtp_img_col_6 tdtxtp_img_col_6 position-relative" style="width:100%;" src="${cur_group123423.img32.getData()}" alt="${cur_group123423.img32.getAttribute("alt")}" /> 
440													      </a> 
441														</#if> 
442														<#if (cur_group123423.TextLinkToPage.getData())?? && cur_group123423.TextLinkToPage.getData() != "" && cur_group123423.LinkToLayout72883470.getFriendlyUrl() == ""> 
443	                            <a data-senna-off="true" class="d-flex position-relative" aria-label="${cur_group123423.name123.getData()}" href="${linkOutPage}"> 
444															<img class="tdtxtp_img tdtxtp_img_col_6 tdtxtp_img_col_6 position-relative" style="width:100%;" src="${cur_group123423.img32.getData()}" alt="${cur_group123423.img32.getAttribute("alt")}" /> 
445													      </a> 
446														</#if> 
447																 <div class=" tdtxtp_name  position-absolute col-8 tdtxtp_nonpadding"> 
448															      <#if (cur_group123423.name123.getData())??> 
449	                                     ${cur_group123423.name123.getData()} 
450                                    </#if> 
451															   </div> 
452															   <div style="cursor: pointer;" class=" position-absolute tdtxtp_imgps"> 
453															      <#if (cur_group123423.LinkToLayout72883470.getFriendlyUrl())?? && cur_group123423.LinkToLayout72883470.getFriendlyUrl() != ""> 
454															      <a data-senna-off="true" class="tdtxtp_viewmore" href="${urlWithoutQueryString}"> 
455																       ${languageUtil.get(locale, "donate.view-more")} 
456																    </a> 
457																 </#if> 
458																 <#if (cur_group123423.TextLinkToPage.getData())?? && cur_group123423.TextLinkToPage.getData() != "" && cur_group123423.LinkToLayout72883470.getFriendlyUrl() == ""> 
459															      <a data-senna-off="true" class="tdtxtp_viewmore" href="${linkOutPage}"> 
460																       ${languageUtil.get(locale, "donate.view-more")} 
461																    </a> 
462																 </#if> 
463															   </div> 
464															</img> 
465															</div> 
466										       </div> 
467												</#if> 
468                     </#if> 
469	                </#list> 
470               </#if> 
471				    </div> 
472						 
473						 
474				 </div> 
475			</div> 
476</#if>