bootstrap glyphicons-halflings-regular.woff 404 not found IIS
網站發現一行錯誤訊息:
glyphicons-halflings-regular.woff 404 not found
檢查後發現,檔案確實存在,剩下的可能性就是 woff 副檔名 IIS 不認識,
要讓 IIS 認識相關檔案的話,可以在 web.config 加入下列設定
<system.webServer>
<staticContent>
<remove fileExtension=".eot" />
<remove fileExtension=".ttf" />
<remove fileExtension=".otf"/>
<remove fileExtension=".woff"/>
<mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
<mimeMap fileExtension=".ttf" mimeType="font/ttf" />
<mimeMap fileExtension=".otf" mimeType="font/otf" />
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
</staticContent>
</system.webServer>
資料來源:
Twitter bootstrap glyphicons do not appear in release mode 404
http://stackoverflow.com/questions/21269884/twitter-bootstrap-glyphicons-do-not-appear-in-release-mode-404
IIS - RESOURCE INTERPRETED AS FONT BUT TRANSFERRED WITH MIME TYPE APPLICATION/X-FONT-WOFF
http://deanhume.com/home/blogpost/iis---resource-interpreted-as-font-but-transferred-with-mime-type-application-x-font-woff/4101
2015年5月27日 星期三
2015年5月21日 星期四
nginx 使用正則表達式將特定網址重導向
nginx 使用正則表達式將特定網址重導向
最近遇到一個問題,要將特定的網址重導向,
例如將 http://domain/data/1234/ 重導向為 http://domain/data/1234/data.json。
本來想說還要靠後端服務來處理,
後來想到 nginx 應該有支援重導向的功能,
可以使用 301 Redirect 設定:
location /data/1234/ {
return 301 /data/1234/data.json
}
但是上面範例中的 1234 只是其中一個可能性,實際上是不定長度的數字,
所以接下來要使用正則表達式 (Regular Expression) 來解析想要的網址。
解析條件如下:
http://domain/data/{number}/
其中 http://domain 是根目錄,後面的 /data/ 是固定的,接著 {number} 是不定長度的數字,
最後結尾有個 / 是不一定要有的(考慮到有人可能不想打這個字),所以加上 ? 表示可有可無。
上述條件的 regex 表示如下:
^\/data/[0-9]+\/?
因為要將數字的部份當成變數,所以要加上 () 括號,
在 nginx 的設定檔 /etc/nginx/nginx.conf 加上
location ~ '^\/data/([0-9]+)\/?' {
return 301 /data/$1/data.json
}
上面這樣就可以成功轉址,但是執行後卻發生錯誤了!
「此網站包含重新導向迴圈」
原來我們重導向後的網址 http://domain/data/1234/data.json 還是符合 regex 裡面的絛件啊!
於是要在條件的最後加上一個 $ 代表結尾,這樣就不會一直在迴圈中跑不出來嘍。
location ~^\/data\/([0-9]+)\/?$ {
return 301 /data/$1/data.json
}
相關文章:
Arch Linux nginx 安裝
資料來源:
How to redirect single url in nginx?
http://stackoverflow.com/questions/18037716/how-to-redirect-single-url-in-nginx
Basic Nginx Configuration
https://www.linode.com/docs/websites/nginx/basic-nginx-configuration
最近遇到一個問題,要將特定的網址重導向,
例如將 http://domain/data/1234/ 重導向為 http://domain/data/1234/data.json。
本來想說還要靠後端服務來處理,
後來想到 nginx 應該有支援重導向的功能,
可以使用 301 Redirect 設定:
location /data/1234/ {
return 301 /data/1234/data.json
}
但是上面範例中的 1234 只是其中一個可能性,實際上是不定長度的數字,
所以接下來要使用正則表達式 (Regular Expression) 來解析想要的網址。
解析條件如下:
http://domain/data/{number}/
其中 http://domain 是根目錄,後面的 /data/ 是固定的,接著 {number} 是不定長度的數字,
最後結尾有個 / 是不一定要有的(考慮到有人可能不想打這個字),所以加上 ? 表示可有可無。
上述條件的 regex 表示如下:
^\/data/[0-9]+\/?
因為要將數字的部份當成變數,所以要加上 () 括號,
在 nginx 的設定檔 /etc/nginx/nginx.conf 加上
location ~ '^\/data/([0-9]+)\/?' {
return 301 /data/$1/data.json
}
上面這樣就可以成功轉址,但是執行後卻發生錯誤了!
「此網站包含重新導向迴圈」
原來我們重導向後的網址 http://domain/data/1234/data.json 還是符合 regex 裡面的絛件啊!
於是要在條件的最後加上一個 $ 代表結尾,這樣就不會一直在迴圈中跑不出來嘍。
location ~^\/data\/([0-9]+)\/?$ {
return 301 /data/$1/data.json
}
相關文章:
Arch Linux nginx 安裝
資料來源:
How to redirect single url in nginx?
http://stackoverflow.com/questions/18037716/how-to-redirect-single-url-in-nginx
Basic Nginx Configuration
https://www.linode.com/docs/websites/nginx/basic-nginx-configuration
2015年5月20日 星期三
Arch Linux 安裝 nginx
Arch Linux 安裝 nginx
安裝 nginx
# pacman -S nginx
預設設定為 localhost 80 port,
使用 systemd 來執行 nginx (一次性)
# systemctl start nginx.service
或者啟動此服務 (開機自動執行)
# systemctl enable nginx.service
這時候可以在 http://localhost 看到預設網頁了喔!
nginx 主要設定檔為 /etc/nginx/nginx.conf,可以使用 nano 編輯
# nano /etc/nginx/nginx.conf
預設網頁為 /usr/share/nginx/html/index.html,可以使用 cat 查詢
# cat /usr/share/nginx/html/index.html
相關文章:
nginx 使用正則表達式將特定網址重導向
資料來源:
Arch Wiki - nginx
https://wiki.archlinux.org/index.php/Nginx
Arch Wiki - systemd
https://wiki.archlinux.org/index.php/Systemd#Using_units
安裝 nginx
# pacman -S nginx
預設設定為 localhost 80 port,
使用 systemd 來執行 nginx (一次性)
# systemctl start nginx.service
或者啟動此服務 (開機自動執行)
# systemctl enable nginx.service
這時候可以在 http://localhost 看到預設網頁了喔!
nginx 主要設定檔為 /etc/nginx/nginx.conf,可以使用 nano 編輯
# nano /etc/nginx/nginx.conf
預設網頁為 /usr/share/nginx/html/index.html,可以使用 cat 查詢
# cat /usr/share/nginx/html/index.html
相關文章:
nginx 使用正則表達式將特定網址重導向
資料來源:
Arch Wiki - nginx
https://wiki.archlinux.org/index.php/Nginx
Arch Wiki - systemd
https://wiki.archlinux.org/index.php/Systemd#Using_units
2015年5月18日 星期一
Arch Linux C++ / Qt 開發
Arch Linux C++ / Qt 開發
要進行 C++ 開發,只要安裝基本開發套件
# pacman -S base-devel
使用 nano 新增 main.cpp 輸入下列文字:
#include <iosteam>
int main(int argc, char* argv[])
{
std::cout << "Hello World!" << std::endl;
return 0;
}
存檔後使用 g++ 編譯
# g++ main.cpp
編譯後會產生 a.out 檔案,執行
#./a.out
畫面上就會印出 Hello World! 文字
接著安裝 Qt 套件
# pacman -S qt
新增一個 qt 資料夾並進入
# mkdir qt
# cd qt
使用 nano 新增 main.cpp 輸入下列文字:
#include <QDebug>
int main(int argc, char* argv[])
{
qDebug() << "Hello World!";
return 0;
}
使用 qmake 產生專案檔
# qmake -project
使用 qmake 產生 Makefile
# qmake
使用 Makefile 編譯
# make
執行產生的 qt 檔案
# ./qt
畫面上會印出 Hello World! 的文字
相關文章:
Arch Linux 文章列表
資料來源:
Arch Linux
https://www.archlinux.org/
Arch Linux 臺灣社群
http://archlinux.tw/
要進行 C++ 開發,只要安裝基本開發套件
# pacman -S base-devel
使用 nano 新增 main.cpp 輸入下列文字:
#include <iosteam>
int main(int argc, char* argv[])
{
std::cout << "Hello World!" << std::endl;
return 0;
}
存檔後使用 g++ 編譯
# g++ main.cpp
編譯後會產生 a.out 檔案,執行
#./a.out
畫面上就會印出 Hello World! 文字
接著安裝 Qt 套件
# pacman -S qt
新增一個 qt 資料夾並進入
# mkdir qt
# cd qt
使用 nano 新增 main.cpp 輸入下列文字:
#include <QDebug>
int main(int argc, char* argv[])
{
qDebug() << "Hello World!";
return 0;
}
使用 qmake 產生專案檔
# qmake -project
使用 qmake 產生 Makefile
# qmake
使用 Makefile 編譯
# make
執行產生的 qt 檔案
# ./qt
畫面上會印出 Hello World! 的文字
相關文章:
Arch Linux 文章列表
資料來源:
Arch Linux
https://www.archlinux.org/
Arch Linux 臺灣社群
http://archlinux.tw/
2015年5月17日 星期日
Arch Linux 基本設定
Arch Linux 基本設定
本文接續前篇:
VirtualBox 安裝 Arch Linux
可以使用下列指令檢查網路是否正常
# ping -c 3 www.google.com
設定 root 密碼
# passwd
設定 hostname
echo arch > /etc/hostname
設定時區 (此範例將時區設定為台北時間)
ln -s /usr/share/zoneinfo/Asia/Taipei /etc/localtime
註:如果出現下列錯誤訊息,加上 -f 參數即可強制執行
ln: failed to create symbolic link '/etc/locatime': File exists
=== 設定 UTF-8 語系
設定支援語系,編緝要產生的語系
# nano /etc/locale.gen
將下列解除註解 (刪除開頭的 # 符號)
en_US.UTF-8 UTF-8
開始產生語系
# locale-gen
設定系統的語系為 UTF-8
localectl set-locale LANG=en_US.UTF-8
新增使用者 (
# useradd -m {username}
註:沒有加上 -m 參數的話,
不會建立使用者家目錄 /home/{username} 及相關檔案 .bash_logout .bash_profile, .bashrc
設定使用者密碼
# passwd {username}
刪除使用者
# userdel {username}
範例:
#useradd demo
#useradd demo
安裝 sudo
#pacman -S sudo
設定 sudo 的使用者
警告:永遠只用 visudo 指令來修改,不要直接修改檔案,
因為 visudo 指令會在修改完畢後進行檢查。
你可以使用預設的 vi 編輯器
# visudo
或者使用 nano 當編輯器
# EDITOR=nano visudo
簡單的將某一使用者加入 sudo 的方法是在
root ALL=(ALL) ALL 下面加入一行
{username} ALL=(ALL) ALL
例如:
demo ALL=(ALL) ALL
登出後使用新的使用者帳密登入
# logout
===
20160512 Update:
設定 UTF-8 語系
20160106 Update:
移除啟動 dhcp 服務 (移到安裝時進行)
相關文章:
Arch Linux 文章列表
資料來源:
Arch Linux
https://www.archlinux.org/
Arch Linux 臺灣社群
http://archlinux.tw/
鳥哥的 Linux 私房菜
http://linux.vbird.org/linux_basic/
本文接續前篇:
VirtualBox 安裝 Arch Linux
可以使用下列指令檢查網路是否正常
# ping -c 3 www.google.com
設定 root 密碼
# passwd
設定 hostname
echo arch > /etc/hostname
設定時區 (此範例將時區設定為台北時間)
ln -s /usr/share/zoneinfo/Asia/Taipei /etc/localtime
註:如果出現下列錯誤訊息,加上 -f 參數即可強制執行
ln: failed to create symbolic link '/etc/locatime': File exists
=== 設定 UTF-8 語系
設定支援語系,編緝要產生的語系
# nano /etc/locale.gen
將下列解除註解 (刪除開頭的 # 符號)
en_US.UTF-8 UTF-8
開始產生語系
# locale-gen
設定系統的語系為 UTF-8
localectl set-locale LANG=en_US.UTF-8
新增使用者 (
# useradd -m {username}
註:沒有加上 -m 參數的話,
不會建立使用者家目錄 /home/{username} 及相關檔案 .bash_logout .bash_profile, .bashrc
設定使用者密碼
# passwd {username}
刪除使用者
# userdel {username}
範例:
#useradd demo
#useradd demo
安裝 sudo
#pacman -S sudo
設定 sudo 的使用者
警告:永遠只用 visudo 指令來修改,不要直接修改檔案,
因為 visudo 指令會在修改完畢後進行檢查。
你可以使用預設的 vi 編輯器
# visudo
或者使用 nano 當編輯器
# EDITOR=nano visudo
簡單的將某一使用者加入 sudo 的方法是在
root ALL=(ALL) ALL 下面加入一行
{username} ALL=(ALL) ALL
例如:
demo ALL=(ALL) ALL
登出後使用新的使用者帳密登入
# logout
===
20160512 Update:
設定 UTF-8 語系
20160106 Update:
移除啟動 dhcp 服務 (移到安裝時進行)
相關文章:
Arch Linux 文章列表
資料來源:
Arch Linux
https://www.archlinux.org/
Arch Linux 臺灣社群
http://archlinux.tw/
鳥哥的 Linux 私房菜
http://linux.vbird.org/linux_basic/
安裝 Arch Linux 發生錯誤 invalid of corrupted package (PGP signature)
安裝 Arch Linux 發生錯誤 invalid of corrupted package (PGP signature)
今天安裝時發生下列錯誤:
error: dhcpcd: signature from "Anatol Pomozov <anatol.pomozov@gmail.com>" is unknown trust
:: File /mnt/var/cache/pacman/pkg/dhcpcd-6.7.1-1-x86_64.pkg.tar.xz is corrupter (invalid of corrupted package (PGP signature)).
這時候就要更新 key
# pacman-key --populate archlinux
# pacman-key --refresh-keys
之後再執行一次安裝即可
# pacstrap -i /mnt base
相關文章:
Arch Linux 文章列表
資料來源:
Arch Linux - [Solved] New install - invalid of corrupted package (PGP signature)
https://bbs.archlinux.org/viewtopic.php?id=195139
今天安裝時發生下列錯誤:
error: dhcpcd: signature from "Anatol Pomozov <anatol.pomozov@gmail.com>" is unknown trust
:: File /mnt/var/cache/pacman/pkg/dhcpcd-6.7.1-1-x86_64.pkg.tar.xz is corrupter (invalid of corrupted package (PGP signature)).
這時候就要更新 key
# pacman-key --populate archlinux
# pacman-key --refresh-keys
之後再執行一次安裝即可
# pacstrap -i /mnt base
相關文章:
Arch Linux 文章列表
資料來源:
Arch Linux - [Solved] New install - invalid of corrupted package (PGP signature)
https://bbs.archlinux.org/viewtopic.php?id=195139
2015年5月10日 星期日
VirtualBox 安裝 Arch Linux
VirtualBox 安裝 Arch Linux
Release Info 顯示最新的版本資訊
BitTorrent Download (recommended) 是 BT 磁力連結及種子檔
HTTP Direct Downloads 開始是全球各地直接下載的連結
本文編輯時的版本:
Current Release: 2016.01.01
Included Kernel: 4.3.3
註:如果是現有的 arch linux,可以使用 pacman -Syu 指令直接升級
按下 Enter 選擇第一項 Boot Arch Linux (x86_64) 之後進入安裝介面
首先進行網路連線測試,確認網路功能正常
# ping -c 3 www.google.com
將著使用 cgdisk 建立 GPT 分割區,
預計分別建立 10G 在 / (根目錄),4G在 /home,2G 在 /swap (共 16G)
# cgdisk /dev/sda
警告頁面,按下任何鍵後繼續,
會看到目前總共有16G 的 free space
首先建立第一個空間,10G
New / Enter (預設) / 10G / Enter (預設 8300) / Enter (預設空白)
移到下面的 6G free space 的位置,同樣的動作建立 4G 空間
New / Enter (預設) / 4G / Enter (預設 8300) / Enter (預設空白)
移到最後的 2G free space 的位置
New / Enter (預設) / 2G / Enter (預設 8300) / Enter (預設空白)
確認正確後寫入(警告訊息為此動作會破壞硬碟上的資料)
Write / Enter
最後離開 cgdisk
Quit
建立檔案系統
# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/sda2
別忘了 swap
# mkswap /dev/sda3
# swapon /dev/sda3
使用 lsblk 來確認目前的分割區狀態
# lsblk /dev/sda
掛載分割區
# mount /dev/sda1 /mnt
# mkdir /mnt/home
# mount /dev/sda2 /mnt/home
使用 pacstrap 安裝基本系統
# pacstrap -i /mnt base
產生 fstab 檔案
# genfstab -U -p /mnt >> /mnt/etc/fstab
使用 nano 文字編緝器查看產生的資訊
# nano /mnt/etc/fstab
(Ctrl + X 離開 nano)
使用 chroot 進入剛安裝好的系統
# arch-chroot /mnt /bin/bash
設定 BIOS 主機版開機載入程式
# pacman -S gptfdisk
# pacman -S syslinux
# syslinux-install_update -i -a -m
設定開機根目錄為 /dev/sda1 (預設為 /dev/sda3)
# nano /boot/syslinux/syslinux.cfg
設定網路,啟動 dhcp 服務
# systemctl enable dhcpcd.service
離開 chroot 並重啟系統
# exit
# umount -R /mnt
# poweroff
記得先退出 arch 安裝光碟
重開機後看到開機選項,5秒後自動進入 Arch Linux
接著登入 root 後就可以開始使用了
到此基本系統安裝完成,如果有興趣可以參考下一篇:
Arch Linux 基本設定
相關文章:
Arch Linux 文章列表
20150611 Update:
Arch 版本由 2015.05.01 改為 2015.06.01,硬碟空間由 8G 改為 16G
20160106 Update:
Arch 從 2015.06.01 更新為 2016.01.01
Kernel 從 4.0.4 更新為 4.3.3
新增啟動 dhcp 服務 (原本在基本設定時才進行)
資料來源:
Arch Linux
https://www.archlinux.org/
Arch Linux 臺灣社群
http://archlinux.tw/
一、取得安裝檔 (iso)
在Arch網站選擇一個站台下載 iso 檔案,建議使用 BT 下載Release Info 顯示最新的版本資訊
BitTorrent Download (recommended) 是 BT 磁力連結及種子檔
HTTP Direct Downloads 開始是全球各地直接下載的連結
本文編輯時的版本:
Current Release: 2016.01.01
Included Kernel: 4.3.3
註:如果是現有的 arch linux,可以使用 pacman -Syu 指令直接升級
二、設定 VirtualBox
建立一個新的虛擬機,設定記憶體 512 MB,硬碟 16 GB。三、開始安裝
啟動虛擬機後,掛載 iso 檔,會看到安裝畫面按下 Enter 選擇第一項 Boot Arch Linux (x86_64) 之後進入安裝介面
首先進行網路連線測試,確認網路功能正常
# ping -c 3 www.google.com
將著使用 cgdisk 建立 GPT 分割區,
預計分別建立 10G 在 / (根目錄),4G在 /home,2G 在 /swap (共 16G)
# cgdisk /dev/sda
警告頁面,按下任何鍵後繼續,
會看到目前總共有16G 的 free space
首先建立第一個空間,10G
New / Enter (預設) / 10G / Enter (預設 8300) / Enter (預設空白)
移到下面的 6G free space 的位置,同樣的動作建立 4G 空間
New / Enter (預設) / 4G / Enter (預設 8300) / Enter (預設空白)
移到最後的 2G free space 的位置
New / Enter (預設) / 2G / Enter (預設 8300) / Enter (預設空白)
確認正確後寫入(警告訊息為此動作會破壞硬碟上的資料)
Write / Enter
最後離開 cgdisk
Quit
# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/sda2
別忘了 swap
# mkswap /dev/sda3
# swapon /dev/sda3
使用 lsblk 來確認目前的分割區狀態
# lsblk /dev/sda
掛載分割區
# mount /dev/sda1 /mnt
# mkdir /mnt/home
# mount /dev/sda2 /mnt/home
使用 pacstrap 安裝基本系統
# pacstrap -i /mnt base
產生 fstab 檔案
# genfstab -U -p /mnt >> /mnt/etc/fstab
使用 nano 文字編緝器查看產生的資訊
# nano /mnt/etc/fstab
(Ctrl + X 離開 nano)
使用 chroot 進入剛安裝好的系統
# arch-chroot /mnt /bin/bash
設定 BIOS 主機版開機載入程式
# pacman -S gptfdisk
# pacman -S syslinux
# syslinux-install_update -i -a -m
設定開機根目錄為 /dev/sda1 (預設為 /dev/sda3)
# nano /boot/syslinux/syslinux.cfg
設定網路,啟動 dhcp 服務
# systemctl enable dhcpcd.service
離開 chroot 並重啟系統
# exit
# umount -R /mnt
# poweroff
記得先退出 arch 安裝光碟
重開機後看到開機選項,5秒後自動進入 Arch Linux
接著登入 root 後就可以開始使用了
Arch Linux 基本設定
相關文章:
Arch Linux 文章列表
20150611 Update:
Arch 版本由 2015.05.01 改為 2015.06.01,硬碟空間由 8G 改為 16G
20160106 Update:
Arch 從 2015.06.01 更新為 2016.01.01
Kernel 從 4.0.4 更新為 4.3.3
新增啟動 dhcp 服務 (原本在基本設定時才進行)
資料來源:
Arch Linux
https://www.archlinux.org/
Arch Linux 臺灣社群
http://archlinux.tw/
訂閱:
文章 (Atom)