1. 程式人生 > >如何快速搭建靜態資源伺服器

如何快速搭建靜態資源伺服器

一:使用http-server

http-server基於Node,所以得先確保有Node環境。

1. 安裝http-server

1 npm install http-server-g

2. 啟動

1 http-server-a127.0.0.1-p9999

上面的命令表示在本機的9999埠上啟動一個靜態伺服器,應用根目錄為執行上面命令的所在目錄2

優點:簡單,快速
缺點:命令列一關,服務就中止了。每次開機都要再啟一次,麻煩

二:使用ApmServer/XAMPP
兩者都是PHP的整合環境,這裡以ApmServer為例(只有用過ApmServer)。

首先在網上下載ApmServer的壓縮包(免安裝),解壓到一個盤的根目錄(建議是根目錄,因為路徑有空格可能造成一些不必要的麻煩),下面是其解壓後的目錄結構:

3

雙擊APMServ.exe啟動應用,可以看到下面的介面:

4
因為我們只需要一個靜態伺服器,所以把MySQL和SSL等選項都去掉,然後點選“啟動APMServ”就完成我們的靜態伺服器了。這時要部署應用,只需要把檔案放到apmServer/www/htdocs目錄下面就可以訪問到了。這裡想說的是其虛擬目錄配置,即對映硬碟上任一目錄作為伺服器的一個子目錄。有了虛擬目錄,我們就可以定製出多個不同的伺服器了。

12

開啟虛擬目錄的配置介面,填寫虛擬目錄名稱(英文),中文備註,選擇網頁根目錄,然後儲存虛擬目錄,重啟ApmServer後,就可以訪問我們的虛擬目錄了。

優點:簡單,快速,整合PHP開發環境(PHP,MySQL等),支援虛擬目錄等許多實用功能
缺點:用著用著就啟動不了

三:使用Tomcat
Tomcat是Java應用伺服器,當然也可以用來作靜態伺服器。但Tomcat預設的一些配置不太友好,所以我們要定製一些配置。首先就是讓Tomcat支援顯示目錄檔案。開啟Tomcat/conf/web.xml,修改listings為true。

9

Tomcat中虛擬目錄配置是位於Tomcat/conf/server.xml。在在host標籤中增加如下格式的配置:

1 <Context path="虛擬目錄名"docBase="檔案所在根目錄"
crossContext="true"/>

如:<Context path=”/test” docBase=”G:/Test” crossContext=”true” />

完成上面配置後,雙擊Tomcat/bin/startup.bat即可以啟動Tomcate伺服器,在瀏覽器中就可以正常訪問到剛我們配好的目錄了。

10

優點:功能強大
缺點:配置複雜

四:使用static-server

static-server很類似http-server,也是基於node,安裝和使用方法很相似:

npm install -g static-server

使用時只需要在專案目錄下指定該專案的入口檔案即可:

static-server -i index.html

下面是一些常用的選項:

-p, --port

五:使用Python

如果你安裝了Python,那這個方法可能最簡便了,只需要在該目錄下執行命令:

python -m SimpleHTTPServer

這樣就啟動了一個靜態web伺服器,此時專案的根目錄為執行命令時所在目錄,預設埠是8000,如果需要指定埠,則加上埠號啟動:

python -m SimpleHTTPServer 8080

使用Ruby

如果你安裝Ruby,Ruby也提供了一個很簡便的方式:

ruby -run -e httpd . -p 8888

使用Nginx

幾乎所有的web應用在最終部署到Linux上時都會用到Nginx做反向代理伺服器,所以很有必要會用Nginx
下載,解壓,執行nginx.exe,在瀏覽器輸入localhost127.0.0.1,如果出現
Welcome to nginx!
則說明Nginx已經成功安裝。

下面是Nginx常用到的命令:

nginx -s reload                // 重新載入nginx配置
nginx -s stop

如果你的需求只是實現靜態資源服務,那麼只需要如下簡單配置即可:root代表專案的根目錄,index代表預設的入口檔案。

server {
    listen       80;
    server_name  localhost;

    location / {
        root   E:\Work\Workspace;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

使用json-server

如果你的需求只是想模擬ajax從後臺獲取資料,因為通常一個專案中前端開發和後臺幾乎是同時進行的,開發初期往往需要前端自己構造假資料來渲染頁面,谷歌瀏覽器不在服務端環境下除錯js,則會被視為跨域,從而導致無法獲取本地json資料,要不就使用火狐瀏覽器,較好的解決方法是快速搭建一個JSON伺服器,這個時候json-server就是個不錯的選擇了。

安裝:

npm install -g json-server

在任意資料夾下建立一個json檔案:如data.json:

{
  "posts": [
    { "id": 1, "title": "json-server", "author": "typicode" }
  ],
  "comments": [
    { "id": 1, "body": "some comment", "postId": 1 },
    { "id": 2, "body": "some comment", "postId": 1 }
  ],
  "profile": { "name": "typicode" }
}

在該目錄下啟動json-server來監聽這個檔案:

json-server --watch data.json

# 或者指定埠啟動啟動
json-server --watch data.json --port 3004

可以看到json-server預設建立了三個請求資源,分別對應了data.json中的key值,很方便,這個時候瀏覽器訪問localhostL3000/db 就會看到當前data.json的資料了。

訪問http://localhost:3000/comments/1 ,則可以獲取到comments下id為1的json資料:

很神奇是吧,有了資料之後,可以讓json-server也作為靜態資源的伺服器,這樣就沒有跨域問題了。
json-server預設的靜態資源(HTML,CSS,JS等)是在與json資料檔案同級目錄下的public資料夾中,你只需要建立一個名為public的資料夾,把靜態資源放到public目錄下,然後直接執行以下命令啟動即可:

json-server data.json

假如我們需要指定靜態資原始檔夾的位置,則可以通過指定目錄來啟動json-server即可,如指定靜態資源為json資料同級目錄的source資料夾下,則:

json-server data.json --static ./source

這樣,訪問http://localhost:3000/index.html 就可以成功載入到json資料了。

json-server還有很多更強大的功能,如支援模擬REST API操作等,更多的功能可以到json-server專案文件檢視。

使用一些IDE

例如:HBuilder、WebStorm

小結:
如果沒有特別要求,使用http-server基本就能滿足我們前端對伺服器的要求了