靜態頁面通過SVN傳到服務器上后,有時會出現多余的一段空行。這種現象主要是BOM的問題。但是對BOM的問題如何進行解決呢?關鍵就是對utf-8+BOM進行刪除。上海珍島SEO培訓公司對utf-8+BOM如何刪除,進行基本的介紹和分析。
對于我們這個遇到的這個問題,應該說有三個方面需要處理:
1、首先刪選出所有的BOM文件
2、去除文件中的BOM
3、SVN能不能進行BOM檢測,防止有BOM的文件commit
具體操作步驟:
1、用svn的POST-COMMIT代碼,做了程序自動更新至網站發布目錄(測試),服務器是linux環境,所以用命令就可以找出所有擁有BOM的文件
查找UTF-8+BOM
shell> grep -r -I -l $'^/xEF/xBB/xBF' 目錄
刪除BOM
shell> grep -r -I -l $'^/xEF/xBB/xBF' /path | xargs sed -i ‘s/^/xEF/xBB/xBF//;q'
通過查找,你就可以可以找到相應的文件,再進行更改。
2、去除BOM文件,這個比較簡單,有很多IDE都能去掉BOM,例如UltraEdit,editplus,vim等等。
3、刪除utf-8+BOM以后,還需要進行一些步驟。首先在開發人員SVN上傳的時候就提示他,該文件擁有BOM。用過svn的朋友都知道,在版本目錄下會有HOOKS目錄,里面都是鉤子的模板,我們就用pre-commit這個,記得把pre-commit.tmpl改成pre-commit,然后給可執行權限。
#!/bin/sh
REPOS=”$1″
TXN=”$2″
SVNLOOK=/usr/bin/svnlook
FILES=`$SVNLOOK changed -t “$TXN” “$REPOS” | awk ‘/^[UA]/ {print $2}'`
for FILE in $FILES; do
if $SVNLOOK cat -t “$TXN” “$REPOS” “$FILE” | grep -q $'^/xEF/xBB/xBF'; then
echo “Byte Order Mark be found in $FILE” 1>&2
exit 1
fi
done
保存后即可生效,SVNSERVE不需要重啟。這樣開發人員如果上傳BOM文件的時候,就會提示上傳失敗,需要重新上傳。
新聞熱點
疑難解答