問題描述
部署在App Service for Linux環(huán)境中的Web App筹燕。出現(xiàn)了字體文件缺失的問題,頁面顯示本來時(shí)中文的地方衅鹿,區(qū)別變?yōu)榉娇蛘嘉弧?/p>
問題分析
在應(yīng)用中撒踪,通常涉及到顯示問題的有兩個(gè)方面,
一是亂碼:”??????¨2?????????“ 大渤, ”?”±???è|??¥??¥??-|?1 ?¤??¤???‘???“ 制妄,”鐢辨湀瑕佸ソ濂藉涔?fàn)澶╁ぉ鍚戜?“ ”錕斤拷錕斤拷要錕“ , 這些內(nèi)容表示的問題就是編碼問題。
二是字體缺失:表現(xiàn)形式為用“□”方框來作為占位符泵三。
對(duì)于第一個(gè)問題耕捞,我們可以通過應(yīng)用配置來修改字符編碼問題(可以參考文章:https://www.cnblogs.com/lulight/p/13531483.html)。而字體缺失烫幕,則可以通過下面的方式來驗(yàn)證俺抽。
第一步:通過App Service Kudu站點(diǎn)的SSH進(jìn)入Linux,查看是否已經(jīng)安裝了TTF-DEJAVU文件 cd /usr/share/fonts/ttf-dejavu/
第二步:如果沒有ttf-dejavu文件纬霞,就需要通過 apk --no-cache add ttf-dejavu 安裝,然后使用cp命令把缺少的TTF文件復(fù)制到 /usr/share/fonts/ttf-dejavu/ 目錄下
apk --no-cache add ttf-dejavu
cp /home/site/SIMHEI.TTF /usr/share/fonts/ttf-dejavu/SIMHEI.TTF
##PS: 比如SIMHEI.TTF文件已經(jīng)保存在 home/site文件中
問題解決
在App Service for Linux中驱显,可以通過啟動(dòng)腳本方式(Stratup Script)來初始化字體文件诗芜。詳細(xì)步驟為:
1) 新建一個(gè)startup_script.sh 文件,內(nèi)容為:
apk --no-cache add ttf-dejavu
cp /home/site/SIMHEI.TTF /usr/share/fonts/ttf-dejavu/SIMHEI.TTF
注:需要把SIMHEI.TTF 文件上傳到app service 的 home/site/目錄中埃疫。
2)把文件放置在home/site目錄下伏恐,如:/home/site/deployments/tools/startup_script.sh,可以通過FTP方式上傳文件栓霜,或者直接包含在應(yīng)用的項(xiàng)目文件中翠桦,路徑可以自定義,只要在/Home/下就可以胳蛮。
3)把第一步中腳本所在的路徑销凑,設(shè)置在啟動(dòng)路徑中。重啟站點(diǎn)即可解決問題仅炊。
修改完成后斗幼,正確的顯示:
附錄一:如果單獨(dú)進(jìn)入App Service SSH, 安裝字體后,當(dāng)實(shí)例發(fā)生重啟抚垄,切換等都會(huì)導(dǎo)致之前的安裝失效蜕窿,所以如果要永久解決字體問題谋逻,還是需要在啟動(dòng)腳本中安裝字體文件。
安裝字體文件的腳本為:
#! /usr/bin/bash
cd /home/site/wwwroot/
if [ -f fonts.tar.gz ]; then
echo '=============================================='
echo 'install fonts......'
echo '=============================================='
tar -zxf fonts.tar.gz cp fonts/* /usr/share/fonts
cd /usr/share/fonts/
mkfontscale && mkfontdir && fc-cache
cd /home/site/wwwroot/
fi
參考資料
配置Java應(yīng)用(第六步):https://docs.azure.cn/zh-cn/app-service/configure-language-java?pivots=platform-linux#finalize-configuration-1
What are the expected values for the Startup File section when I configure the runtime stack? https://docs.microsoft.com/en-us/troubleshoot/azure/general/faqs-app-service-linux#what-are-the-expected-values-for-the-startup-file-section-when-i-configure-the-runtime-stack-
當(dāng)在復(fù)雜的環(huán)境中面臨問題桐经,格物之道需:濁而靜之徐清毁兆,安以動(dòng)之徐生。 云中阴挣,恰是如此!
標(biāo)簽: App Service, App Service for Linux, 字體缺失問題