關於cssinjscssmodule的信息

本文目錄一覽:

CSS 的未來:Cascade Layers (CSS @layer)

最近在 Weekly 郵件推送中查閱到這樣的一條信息:

會發現這條信息裏面出現了一個CSS的新名詞 CSS Cascade Layers ,出於好奇以及對新知識的渴望(說得我自己都信了,哈哈),於是查閱起 CSS Cascade Layers 的相關資料,試圖搞懂它。

at-rule 規則, CSS Conditional Rules Module Level 3 新增的規則,是一條語句,它為CSS提供了執行或如何執行的指令,常見的 at-rule 規則有:

級聯(層疊)與繼承 經過多年的發展迭代,目前已有多個版本( CSS2.2、Level3、Level4 和 Level5 )

何為級聯(層疊)?

層疊本質就是定義了如何合併來自 多個源 的屬性值的算法,簡單來說,CSS規則的順序很重要。當兩條同級別的規則應用到一個元素的時候,寫在後面的就是實際使用的規則。

兩條規則 優先級相同 ,所以順序在最後的生效, h1 是 color:blue ‘勝出’,顯示藍色。

css屬性一般來自於哪幾個源?

層疊(級聯)算法如何過濾來自不同源的css規則?

過濾來自不同源的css規則後,確定同源優先級高低,決定誰「優勝」

了解級聯算法有助於幫助我們理解瀏覽器是如何解決樣式規則衝突,也就是瀏覽器決定哪個樣式規則運用到元素上,更多相關 css級聯 的了解:

何為繼承?

當元素的一個繼承屬性沒有指定值時,則取父元素的同屬性的計算值 。只有文檔根元素取該屬性定義的默認值,類似的屬性有 color 、 font-size 等 。

CSS是由 Cascading Style Sheets 三個詞的首字母縮寫,很多人將其稱為 層疊樣式表或者級聯樣式表 .

CSS Cascade Layers ,也叫做 CSS級聯層 ,是 Cascading and Inheritance Level5 規範中新增了一個新的 CSS 特性,對應的CSS屬性寫法 @layer ,即 一個新的 @ 規則 ,也就是大家所說的 at-rule 規則。

為啥會出現@layer?

也就是說我們一般會使用選擇器權重和順序作為控制級聯的方法,但是這樣卻會時常碰到:

使用較高權重的選擇器來防止你的代碼被後面的代碼(或別人的代碼)覆蓋。但這也會引起另一個不良的現象,可能會在代碼中新增很多帶有 !important 的樣式規則,這本身就會引起更多的問題,比如 !important 在 CSS 樣式表中隨處可見,需要覆蓋的時候難以被覆蓋 。

使用較低權重的選擇器又很容易被後面的代碼(或別人的代碼)覆蓋。比如你在引入第三方代碼庫或組件時,自己的代碼可能被覆蓋。

這兩個現象也是編寫CSS代碼,特別是在一個大型項目或多人協作的項目中常出現。也給很多CSS開發者帶來很多困擾。

雖然社區有很多第三方方案,如 CSS-in-JS 、 CSS Modules 和 CSS Scoped 等來協助解決級聯所帶來的問題,但由於 源碼順序(打包產物)仍然起着決定性的作用,順序帶來的覆蓋和衝突依舊未真正的解決,而且選擇器權重仍然比層的順序(源碼順序)更重要 。

這樣的背景促進了 @layer 的出現,要真正的解決級聯帶來的這些問題。

@layer 的出現,也要求我們對以往 css級聯 有個新的了解,

可以看出 CSS的級聯層 一般位於「Style 屬性」(Style Attribute)和 CSS 選擇器權重(Specificity)之間。

使用 CSS級聯層 ,可以通過 @layer at-rule將 CSS 分成多個層。

1、使用@layer 塊規則,並立即為其分配樣式:

2、使用規則@layer 語句,沒有指定任何樣式:

3、將@import 與layer關鍵字或layer()函數一起使用

以上每一個都創建了一個名為 的級聯層reset。

在下面的例子中,我們建立四個級聯層: reset,base,theme,和utilities 。

重複使用級聯層名稱時,樣式將附加到現有級聯層。級聯層的順序保持不變,因為只有第一次的出現已經確定順序:

重新使用級聯層名稱時層順序保持不變的使@layer 語法變得更加方便和嚴謹。使用它,可以預先建立圖層順序,然後將所有 CSS 附加到它:

按以往CSS級聯來進行分析的話, form input (多層級)的優先級會大於 input ,但是由於 級聯層 所起的作用, @layer theme 的 input 會取勝。

級聯層 支持嵌套使用,如下:

在這個例子中有兩個級聯外層:

就像一棵樹,像這樣,

如果要將樣式附加到嵌套級聯層,需要使用以下全名來引用它,

如果第一個 @media (min-width: 30em) 匹配(基於視口尺寸),則layout級聯層層將在圖層順序中排在第一位。如果只有 @media (prefers-color-scheme: dark) 匹配,theme則將是第一層。

如果兩者匹配,則圖層順序將為layout, theme。如果沒有匹配,則不定義層。

隨着 Cascade Layers 的出現,我們的開發人員將擁有更多的工具來控制 Cascade 。 Cascade Layers 的真正力量來自它在 Cascade 中的獨特位置: Style 屬性(Style Attribute) 和 CSS 選擇器權重(Specificity) 之間。因此,我們不需要擔心其他層中使用的 CSS 的選擇器特異性,也不需要擔心我們將 CSS 加載到這些層中的順序.

了解到這裡,是不是覺得 @layer 相當地cool,迫不及待地想去使用了,我們看一下 caniuse @layer 的兼容情況,

很遺憾,支持程度慘不忍睹,想真正使用可能還要再等等,對於明年三月份 Chromium 99 ,發佈我們拭目以待。

當然現在如果想嘗鮮,對於社區也有給出一些辦法,

大家也可以試一試,感謝閱讀!

求大神指導,有沒有前端學習視頻,自己找了好多,感覺有點亂,覺得學的路線會錯

   1.首先零基礎學習前端先要有一個計劃,了解前端要學習哪些技術。

2.做好自己的時間規劃,如何快速入門前端那肯定是需要不斷的提高自己的學習效率,學習過程中盡量把手機調至靜音給自己一個安靜的學習環境和氛圍。

3.快速入門顧名思義肯定是少走彎路,在學習過程中看下自己身邊有沒有前端這方面的大神盡量多問,多交流,如果是沒有的話,可以多去找一些前端的交流群,學習肯定是不能閉門造車。

學習是一個循序漸進的過程,前端的學習也是如此。

不論前端開發還是後端開發的學習都要求我們多動手,既要反覆的看書,也把學習到的知識點第一時間去實踐。前端的學習入門快要三個月,慢的要 5-6 個月左右,看個人的理解速度來評估,只要入門了不論理解能力,還是學習的速度都會有明顯的提升。

在學習前端的過程中,除了要把學到的知識點第一時間去實踐,也要在學習的每個階段自己創建課題,用所學到的知識去實現課題的內容。這樣可以更好有助於理解和累計一定的項目經驗。

前端的學習從來不是孤軍奮戰,需要一個前輩的領路,也需要一個平台不斷交流和思維碰撞。這樣可以快速入門和少走彎路,也能讓自己發現問題的根本所在。

階段一

在學習前端之前呢,你需要一個編輯器,在網上你可以看到很多編輯器用來編寫前端,甚至 Windows 系統默認的文本文檔也可以作為前端代碼的編輯器。俗話說,沒有金剛鑽怎麼攬瓷器活,所以一個好的編輯器很重要,我在這裡推薦給大家的編輯器是 VSCode。

思維導圖

前端開發工具

一、HTML+CSS

前端的入門門檻是極低的,主要體現在 HTML 和 CSS 部分,運行環境就是瀏覽器,不像如 Java 需要配置開發/運行環境。

HTML 和 CSS 不是編程語言,HTML 是結構標籤,CSS 是結構標籤的樣式配置。

HTML

屬性

事件

標籤

字符集

CSS

CSS基礎教程

CSS樣式

CSS框模型

CSS定位

CSS選擇器

CSS高級

思維導圖

HTML+CSS以上內容的學習用時 20天左右,再花 2 天的時間項目實踐,這部分總花費時間在 22天左右。

二、HTML5+CSS3

HTML5 作為 HTML 的最新版本,引入了多項新技術,大大增強了對於應用的支持能力,使得Web技術不再局限於呈現網頁內容。

HTML5 可以使開發者的工作大大簡化,理論上單次開發就可以在不同平台藉助瀏覽器運行,降低開發的成本,這也是產業界普遍認為 HTML5 技術的主要優點之一。

CSS3使用了層疊樣式表技術,可以對網頁布局、字體、顏色、背景燈效果做出控制。css3作為css的進階版,拆分和增加了盒子模型、列表模塊、語言模塊 、背景邊框 、文字特效 、多欄布局等等。

CSS3的改變有很多,增加了文字特效,豐富了下劃線樣式,加入了圈重點的功能。在邊框方面,有了更多的靈活性,可以更加輕鬆地操控漸變效果和動態效果等等。在文字效果方面,特意增加了投影。

CSS3在兼容上做了很大的功夫,並且網絡瀏覽器也還將繼續支持CSS2,因此原來的代碼不需要做太多的改變,只會變得更加地輕鬆。

HTML5

HTML5視頻

HTML5音頻

HTML5拖放

HTML5畫布

HTML5 SVG

HTML5地理定位

HTML5 Web存儲

HTML5 應用緩存

HTML5表單

CSS3

CSS3邊框

CSS3背景

CSS3文本效果

CSS3字體

CSS3 2D轉換

CSS3 3D 轉換

CSS3 過渡

CSS3 動畫

CSS3 多列

思維導圖

HTML5+CSS以上內容用時 10 天左右,這部分內容是在 HTML+CSS 做的升級改進,只需要了解他們的一些特性即可,再結合這些特性做一些小項目加深學習。

請點擊輸入圖片描述

四、JavaScript

JavaScript 是 web 開發者必學的三種語言之一,這裡我們需要區別 JavaScript 和 Java 他們是完全不同的語言,不論是概念還是設計。javascript 部分需要我們學習的知識點如下所示:

認識JavaScript

基本語法

變量

數據類型

字符串

數字

布爾

數組

對象

Null

Undefined

5. 函數

內置函數

自定義哈數

6. 運算符

7. 流程控制

8. DOM對象

String

Array

Date

Boolean

Math

Number

9. BOM對象

WIndow

Navigator

Screen

History

Location

10. 綜合實例

思維導圖

javascript以上內容的學習用時 35天 左右,這裡推薦幾本 Javascript 的書籍,如下:

《JavaScript 高級程序設計(第3版)》,俗稱紅寶書。前七章講的是語言特性,是重點學習的部分,必須需要反覆閱讀,直至完全理解為止。DOM、事件流、表單、JSON、Ajax 與最後幾章也需要重點學習,這是一些常用的 Web API。至於本書的其餘部分大致讀一下就可以,不做重點要求。

《JavaScript 語言精粹》,俗稱蝴蝶書。很薄的一本書總頁數就 147 頁,花一天時間就能看完,快的話半天就能看完。這本書雖然很薄,但是承載的內容卻非常的豐厚和深入。JavaScript是一門有很多坑的語言,所以這本書」取其精華,去其糟粕「就是精粹了。

《你不知道的 JS》非常精彩的一本書,將 JavaScript 的細節一網打盡。

階段二

這部分內容是對 JavaScript 的補充學習

四、 Jquery學習

1. 基礎語法

2. 選擇器

基本選擇器

層次選擇器

過濾選擇器

表單選擇器

3. DOM操作

查找節點

創建節點

插入節點

刪除節點

複製節點

替換節點

包裹節點

屬性操作

樣式操作

4. 事件

事件綁定

事件冒泡

5. 動畫

show、hide

fadeIn、fadeOut

slideUp、slideDown

自定義動畫animate

動畫回調以及停止動畫

6. 常用工具

瀏覽器及特性檢測

數組和對象操作

Layer UI,主要學習柵格布局,圖標,動畫,按鈕,表單,導航,選項卡,進度條,面板,表格,時間線等

7. Ajax

8. Jquery插件編寫

思維導圖

請點擊輸入圖片描述

二、其他

JavaScript 進階

DOM+BOM綜合演練

網頁特效

ES6 進階

bootstrap

animate.css學習

請點擊輸入圖片描述

以上內容的學習用時 10天左右

階段三

這部分是框架和前後端交互技術的學習

一、Vue

Vue基礎

模版語法

計算屬性偵聽器

Class與Style綁定

條件/列表渲染

事件處理

表單輸入綁定

組件基礎、註冊

Prop

自定義事件

2. Vuex

State

Getter

Mutation

Action

Module

3. Vue-router

認識路由

動態路由

嵌套路由

編程式導航

路由組件傳參

4. axios

認識axios

全局配置

發送POST、GET請求等

思維導圖

請點擊輸入圖片描述

二、React

認識React

React元素渲染

JSX

組件

State

Props

事件處理

條件渲染

列表

組件API

組件聲明周期

思維導圖

三、Node

基礎

console(控制台)

crypto(加密)

debugger(調試器)

fs(文件系統)

http(網絡)

os(操作系統)

path(路徑)

2. 高級

NPM介紹及使用

MVC模式簡介

Express框架學習

鏈接Mysql

鏈接Redis

項目實戰

思維導圖

Node

四、webpack

概念

主要講什麼是入口,出口,loader,插件等

2. 入口

單個入口語法

對象語法

常見場景

3. 輸出

用法

多個入口起點

高級進階

4. 模式

development

production

5. loader

實例

配置

6. 插件

剖析

用法

配置

7. 配置

基本配置

多個Target

使用其他語言配置

8. 模塊

思維導圖

webpack

以上內容用時 兩個月 左右

階段四(擴展部分,了解即可)

一、Mysql

階段一

認識mysql

安裝mysql

創建數據庫、數據表

學習常用的SQL命令,完成增刪查改

2. 階段二

學習Mysql關聯查詢,子查詢等

學習Mysql常用函數

學習Mysql分組、分頁、排序等

3. 階段三

學習Mysql高級查詢

了解存儲過程,自定義函數等

了解Mysql配置文件

二、Redis

認識Redis

學習redis的數據類型

redis常用操作

redis事務

思維導圖

數據庫

以上內容用時 7 天左右

階段五

一、項目管理篇

SVN使用

認識svn

安裝

生命周期

啟動模式

創建版本庫

檢出操作

解決衝突

提交操作

版本回退

查看歷史

分支

標籤

2. GIT使用

認識git

安裝配置

工作流程

工作區、暫存區和版本庫

創建倉庫

基本操作

分支管理

查看歷史等

標籤

github

二、擴展部分

小程序

1. 了解小程序開發流程

2. 視圖容器

view

scroll-view

movable-view

cover-view

cover-image

3. 基礎內容

icon

text

rich-text

progress

4. 表單組件

button

checkbox

form

input

label

picker

picker-view

radio

slider

switch

textarea

5. 導航

navigator

function-page-navigator

6. 媒體組件

audio

image

video

camera

live-player

live-pusher

7. 地圖(map)

8. 畫布(canvas)

9. 開放能力

open-data

web-view

ad

official-account

apicloud(移動app開發)

認識apicloud

開發工具講解

端API

API對象

設備訪問

功能擴展

界面布局

導航菜單

小程序模塊

雲服務對接

4. 雲API

數據云API

統計雲API

推送雲API

雲API SDK

5. 小程序模塊使用

三、常用框架使用篇

iview (vue框架)

element ui (vue框架)

echarts (百度圖標庫)

阿里巴巴開源圖標使用

Sass學習

Swiper學習

zoom.js 學習

四、綜合項目實戰

教務管理系統(node+express+mysql)實現

思維導圖

擴展學習部分

參考資料:前端學習路線,如何學習前端

使用npm常見的報錯處理

(1)更換npm為淘寶的源(淘寶鏡像)

npm install -g cnpm –registry=

(2)項目運行的時候;8080端口不要被被佔用;因為一個8080端口只能用於一個地方;

(3)報錯—-ERROR in Entry module not found: Error: Cannot resolve ‘file’ or ‘directory’ C:\Users\?

想要作為引用關係的js組件文件不要隨便放到一個di

(4)在使用Ant Design組件庫的時候st文件裏面;一定要放到component文件夾中;

import { Form, Input, Select, Checkbox, DatePicker, Col, Radio, Button, Modal, message } from ‘antd’

const FormItem = Form.Item

如上面的import裏面並不需要加載Form.Item組件;只需要加載Form即可;

(5)如果要引入包中的某個文件;可以直接使用相對路徑如

‘antd/dist/antd.css’

(6) 在主文件main.js中

App組件用來書寫路由;

Sider組件用來寫Link即鏈接單頁面;並且一般如 Link 組件後面不要加 :nbsp;

(7)import ReactDOM from ‘react-dom’

(8) 動畫的實現

第1步:現在文件頭部加入這個  var ReactCSSTransitionGroup =require(‘react-addons-css-transition-group’);

或  var ReactCSSTransitionGrop=React.addons.ReactCSSTransitionGrop;

第2步: 在要有動畫的元素中加入此標籤

transitionName代表動畫的名稱;

第3步:寫css樣式;

.example-enter        —》過程先變成這裡的樣式

.example-enter-active  —》最終變到這裡的樣式

.example-leave        —》這裡的樣式就是example-enter-active類的樣式;所有這裡一般不需要加樣式;只要加transition即可;設置移除樣式的時間;

.example-leave-active  —》移除元素的過程變成這個樣式

.example-enter {

opacity: 0;

font-size: 32px;

color:red;

transition: all 1s ease-in;

}

.example-enter.example-enter-active {

opacity: 1;

font-size: 12px;

}

.example-leave {

transition: all 1s ease-in;

color:red;

}

.example-leave.example-leave-active {

font-size: 32px;

opacity: 0;

color:red;

}

(9)獲取數組;操作數組

var bvaue=”sdf”;

1:往數組中添加元素

1:var newItems = this.state.items;

newItems.push(bvaue); this.state.item—-[1,2,3,4];;newItems—arr對象;

2:var newItems = this.state.items.push(bvaue);—-》這裡拿到的是length值(錯誤做法);

2:刪除數組中的元素

var newItems = this.state.items;

newItems.splice(i, 1);

this.setState({items: newItems});

(3)such file ———-找不到這樣或那樣的文件;在編輯器從新選擇文件夾裏面最裏面的項目文件

npm i node_module -save-dev自動更新devDependencies字段值(開發依賴包)

* npm i node_module -save自動更新dependencies字段值(發佈依賴包)

*

如何評價 CSS Modules

CSS 模塊化重要的是要解決好兩個問題:CSS 樣式的導入和導出。靈活按需導入以便復用代碼;導出時要能夠隱藏內部作用域,以免造成全局污染。Sass/Less/PostCSS 等前仆後繼試圖解決 CSS 編程能力弱的問題,結果它們做的也確實優秀,但這並沒有解決模塊化最重要的問題。Facebook 工程師 Vjeux 首先拋出了 React 開發中遇到的一系列 CSS 相關問題。加上我個人的看法,總結如下:

全局污染

CSS 使用全局選擇器機制來設置樣式,優點是方便重寫樣式。缺點是所有的樣式都是全局生效,樣式可能被錯誤覆蓋,因此產生了非常醜陋的 !important,甚至 inline !important 和複雜的選擇器權重計數表,提高犯錯概率和使用成本。Web Components 標準中的 Shadow DOM 能徹底解決這個問題,但它的做法有點極端,樣式徹底局部化,造成外部無法重寫樣式,損失了靈活性。

命名混亂

由於全局污染的問題,多人協同開發時為了避免樣式衝突,選擇器越來越複雜,容易形成不同的命名風格,很難統一。樣式變多後,命名將更加混亂。

依賴管理不徹底

組件應該相互獨立,引入一個組件時,應該只引入它所需要的 CSS 樣式。但現在的做法是除了要引入 JS,還要再引入它的 CSS,而且 Saas/Less 很難實現對每個組件都編譯出單獨的 CSS,引入所有模塊的 CSS 又造成浪費。JS 的模塊化已經非常成熟,如果能讓 JS 來管理 CSS 依賴是很好的解決辦法。Webpack 的 css-loader 提供了這種能力。

無法共享變量

複雜組件要使用 JS 和 CSS 來共同處理樣式,就會造成有些變量在 JS 和 CSS 中冗餘,Sass/PostCSS/CSS 等都不提供跨 JS 和 CSS 共享變量這種能力。

代碼壓縮不徹底

由於移動端網絡的不確定性,現在對 CSS 壓縮已經到了變態的程度。很多壓縮工具為了節省一個位元組會把 ’16px’ 轉成 ‘1pc’。但對非常長的 class 名卻無能為力,力沒有用到刀刃上。

上面的問題如果只憑 CSS 自身是無法解決的,如果是通過 JS 來管理 CSS 就很好解決,因此 Vjuex 給出的解決方案是完全的 CSS in JS,但這相當於完全拋棄 CSS,在 JS 中以 Object 語法來寫 CSS,估計剛看到的小夥伴都受驚了。直到出現了 CSS Modules。

請問誰有發送郵件的那個網頁 HTML 源代碼

163的很容易保存:點寫信以後,在寫信的標題附近空白處點鼠標右鍵,選擇查看源文件,就會打開一個記事本,裏面就是網頁代碼,從文件內容可以看見CSS代碼文件是link href=”” rel=”stylesheet” type=”text/css” id=”cssGlobe”,JS代碼很多,163的代碼的前面部分如下:

html xmlns=””

head

title網易電子郵箱/title

script language=”javascript” src=””/script

script language=”javascript” src=””/script

script language=”javascript”var style= ’21’;var uid = ‘134931@163.com’;var sid = ‘ZCNYFPVKCrOsHwiKRWKKoVxaZzKKPxua’;var contentURL = “readhtml.jsp?ssid=L%2ffJIM1fCEcjz7AdjHYrPVsp5POa3TQPSlvidcrLLkY%3d”;var host = location.hostname;var searchid = “false”;var domain = “163.com”;var limitMessageCount = “999999999”;var attrs = { common:{ sid : sid, uid : uid, cosid : “96”, now : 1238213857743, style : style }, user:{‘refuselist’:”,’safelist’:”,’addo’:0,’afterdel’:1,’aftersend_saveaddr’:0,’app_city’:null,’autosavedraft’:1,’birthday’:null,’city’:”,’clearinterval’:0,’displaysender’:0,’gender’:’0′,’helptips’:’00000101′,’huodong_option’:’00000110′,’junkfilter’:null,’junkfriend’:1,’junkpic’:0,’junkrefuse’:1,’keepspamdays’:-1,’maxlist’:100,’mms_enabled’:0,’nick_name’:”,’ntes_defaultsender’:null,’op_readreceipt’:0,’replyf’:0,’save_sent’:1,’showmusicbar’:0,’style’:21,’true_name’:’陽光’}, cos:{‘pref_quota’:999999999,’perm_func_netfolder’:false,’perm_func_address_book’:true,’perm_func_schedule_send’:true,’perm_func_antivirus’:true,’perm_mail_webmail’:true,’perm_mail_pop’:true,’perm_mail_smtp’:true,’perm_mail_imap’:false,’perm_mail_filter’:true,’perm_webmail_sendmail’:true,’perm_webmail_html_editor’:true,’perm_webmail_signature’:true,’pref_webmail_max_signatures’:10,’perm_webmail_pop_agent’:true,’perm_webmail_mail_sorting’:true,’perm_webmail_mail_get_rfc’:true,’perm_webmail_disp_pref’:true,’perm_webmail_mail_search’:true,’pref_smtp_max_num_rcpts’:20,’pref_smtp_max_send_mail_size’:28672,’pref_alias_num’:3,’perm_mail_sms_notify’:true,’perm_smtp_auth_disabled’:false,’perm_mail_autoreply’:true,’perm_mail_autoforward’:true,’perm_ssl_pop’:false,’perm_ssl_smtp’:false,’perm_ssl_imap’:false,’perm_ssl_http’:false,’perm_filter_anti_spam’:true,’pref_antivirus_engine’:”,’pref_smtp_max_recv_mail_size’:28672,’pref_smtp_max_mail_count’:999999999,’pref_webmail_style’:’0=10=20=30=40=50=60=70=80=90=100=110=120=130=140=150=160=170=180=190=200=210=220=230=240=250=260=270=280=290=300=310=320=330=340=350=0′,’perm_webmail_voicemail’:false,’perm_webmail_videomail’:false,’pref_netfolder_quota’:10,’pref_netfolder_max_file_size’:10240,’pref_netfolder_max_file_count’:10000,’pref_flow_limit’:’nf:560,nfrcv:476,nfsnd:364,smtp:400,web:500,webrcv:400,websnd:300,pop:250,c_pop:350′,’perm_share’:false,’perm_advanced_imaging’:true,’pref_package_download’:1,’pref_webmail_faces’:’@all’,’perm_mail_fulltext_search’:true,’perm_ssl’:true,’perm_webmail_mmmail’:true,’pref_mail_archive_save_days’:0,’pref_max_folder_nest_level’:5,’pref_mail_folders’:100,’pref_mail_rules’:100,’pref_pab_contacts’:2000,’pref_pop_agent_accounts’:8,’pref_upload_size’:-1,’pref_webmail_risky_suffix’:”}};var fixAttrs = {afterdel:1,replyf:0,addo:0,displaysender:0,maxlist:20};for(var a in fixAttrs){ if(isNaN(attrs.user[a])){ attrs.user[a] = fixAttrs[a]; }}if(!attrs.user.ntes_defaultsender){ attrs.user.ntes_defaultsender = uid;}/scriptscript language=”javascript” var gSenders = {‘audited’:[],’unaudited’:[]}; var gPopAccounts = []; var gAlias = []; var gFolders = [{‘id’:1,’name’:’收件箱’,’flags’:{‘system’:true},’stats’:{‘messageCount’:1749,’messageSize’:1050661745,’unreadMessageCount’:1481,’unreadMessageSize’:905264326,’threadCount’:0,’unreadThreadCount’:0}},{‘id’:2,’name’:’草稿箱’,’flags’:{‘system’:true},’stats’:{‘messageCount’:0,’messageSize’:0,’unreadMessageCount’:0,’unreadMessageSize’:0,’threadCount’:0,’unreadThreadCount’:0}},{‘id’:3,’name’:’已發送’,’flags’:{‘system’:true},’stats’:{‘messageCount’:44,’messageSize’:40795286,’unreadMessageCount’:0,’unreadMessageSize’:0,’threadCount’:0,’unreadThreadCount’:0}},{‘id’:4,’name’:’已刪除’,’flags’:{‘system’:true},’stats’:{‘messageCount’:0,’messageSize’:0,’unreadMessageCount’:0,’unreadMessageSize’:0,’threadCount’:0,’unreadThreadCount’:0}},{‘id’:5,’name’:’垃圾郵件’,’flags’:{‘system’:true},’stats’:{‘messageCount’:0,’messageSize’:0,’unreadMessageCount’:0,’unreadMessageSize’:0,’threadCount’:0,’unreadThreadCount’:0}},{‘id’:6,’name’:’病毒文件夾’,’flags’:{‘system’:true},’stats’:{‘messageCount’:0,’messageSize’:0,’unreadMessageCount’:0,’unreadMessageSize’:0,’threadCount’:0,’unreadThreadCount’:0}},{‘id’:7,’name’:’廣告郵件’,’flags’:{‘system’:true},’stats’:{‘messageCount’:0,’messageSize’:0,’unreadMessageCount’:0,’unreadMessageSize’:0,’threadCount’:0,’unreadThreadCount’:0}}];/scriptlink href=”” rel=”stylesheet” type=”text/css” id=”cssGlobe”script language=”javascript” var gLoginTime = new Date(); var gCurrentCss = “”, gCurrentPath = “”, gCurrentStyle = null; var gIsDebug = false; var gConfigUrl = “urlconfig.xml”; var gCacheJsPath = “”; function fLoadStyle(){ var styles = [“”, “/a/h/js3/”]; gCurrentPath = styles[1]; var cssFile = { “vip.163.com” : “163_purple_s.css”, “163.com” : “163_blue_s.css”, “126.com” : “126_green_s.css”, “188.com” : “188_gold_s.css”, “yeah.net” : “yeah_blue_s.css” }; for(c in cssFile){ if(new RegExp(c).test(location.href)){ styles[0] += cssFile[c]; break; } } gCurrentCss = styles[0]; gCurrentStyle = styles; top.gCurrentCss = gCurrentCss; top.gCurrentStyle = gCurrentStyle; var sCss = ‘link href=”‘+ gCurrentCss +'” rel=”stylesheet” type=”text/css” id=”cssStyle” /’; if(document.domain.indexOf(“163.com”)-1){ sCss += ‘link href=”” rel=”stylesheet” type=”text/css”link href=”” rel=”stylesheet” type=”text/css”STYLE.gTopMus .usrMsg{top:10px}.gTopMus .tLink{top:10px}/STYLE’; } document.write(sCss); }; var sTopSearchid = searchid; var sTxtKeyValue = “搜索郵件”; if(sTopSearchid sTopSearchid==”true”){ sTxtKeyValue = “支持郵件全文搜索”; } fLoadStyle(); /scriptstyle@media all {IE\:CLIENTCAPS {behavior:url(#default#clientCaps)}}.userData{behavior:url(#default#userdata)}div.SD_tipsbg{background-image:url()}/style

/head

body class=”gb” lang=”zh” style=”overflow-y:auto”

div class=”gTop gTopMus” id=”dvTop”a href=”” target=”_blank” id=”lnkHome”img src=”” alt=”163郵箱” class=”gLogo” border=”0″ id=”imgLogo” //adiv class=”usrMsg”b id=”bUid”134931@163.com/b [ a href=”javascript:fGoto()” onclick=”fGoto(‘MM.getModule(\’welcome\’)’)”郵箱首頁/a,a href=”javascript:fGoto()” onclick=”fGoto(‘CC.goOutlink(\’;url=\’);’)”密碼保護/a,a href=”javascript:fGoto()” id=”lnkexit” onclick=”fGoto(‘CC.logout()’)”退出/a ]  span id=”ad1″/spanspan/span/divdiv class=”tLink”a href=”javascript:fGoto()” onclick=”fGoto(‘MM.getModule(\’option\’);’)” 設置/a | a href=”javascript:fGoto()” id=”lnkhelp” target=”_blank”幫助/a | a href=”/a/service/index.jsp?sid=ZCNYFPVKCrOsHwiKRWKKoVxaZzKKPxua” target=”_blank”自助查詢/a/div!–頁面總導航欄–div class=”gNav”ul id=”ulTab”lia href=”javascript:fGoto();” class=”on” href=”javascript:fGoto()” onclick=”fGoto(‘MM.getModule(\’welcome\’)’)”電子郵件/a/lilia href=”javascript:fGoto()” onclick=”fGoto(‘MM.getModule(\’address\’);’)”通訊錄/a/lilia href=”javascript:fGoto()” onclick=”fGoto(‘CC.getServiceLink(\’assist\’)’)”百寶箱/a/lili id=”liNetFolder”a href=”javascript:fGoto()” onclick=”fGoto(‘CC.goNetFolder();’)”網易網盤/a/li/ul/divdiv class=”gSrh” id=”set_a_line_area2″input type=”text” class=”gSipt fLe” id=”txtKey” style=”color:#aaaaaa” onfocus=”this.className=’gSipt fLe bgcolor13′” MAXLENGTH=”100″ onkeyup=”if(event.keyCode==13){fGoto(‘CC.searchMailByTop();’);this.blur()}” onblur=”this.className=’gSipt fLe’;if(this.value==”)this.value=sTxtKeyValue;” onclick=”if(this.value==sTxtKeyValue)this.value=”” /a href=”javascript:fGoto()” class=”srhBtn fLe” onclick=”$(‘txtKey’).onclick();fGoto(‘CC.searchMailByTop();’);$(‘txtKey’).onblur();” title=”搜索”b搜索/b/aa href=”javascript:fGoto();” class=”AdsrhBtn fLe” onclick=”fGoto(‘MM.getModule(\’searchmail\’);’)” title=”進入高級搜索”b高級搜索/b/a/divspan id=”spnTabSplit”b id=”sl1″ class=”spl” style=”display:none”/bb id=”sl2″ class=”spl”/bb id=”sl3″ class=”spl”/b/span/divdiv class=”gLoading” style=”top:34px; right:10px; z-index:60; display:none;” id=”tbMsg”img src=”” align=”absmiddle”/ span id=”spnMsg”數據加載中,請稍候…/span/diviframe src=”about:blank” id=”ifrHtmlEditor” name=”ifrHtmlEditor” style=”display:none”/iframeIE:CLIENTCAPS ID=”oClientCaps” /span id=”oUserData” class=”userData” style=”display:none”/spantable class=”gMain”tr class=”gMtr”td class=”gLe”div class=”gMbtn” id=”set_a_line_area3″a href=”javascript:fGoto();” class=”gCmBtn” title=”收信” onclick=”fGoto(‘CC.goInbox();’)”b class=”hide”收信/b/aa href=”javascript:fGoto();” class=”gWmBtn” title=”寫信” onclick=”fGoto(‘CC.compose();’)”b class=”hide”寫信/b/a/divdiv class=”gFd”h3 class=”gfTit”a href=”javascript:fGoto();” class=”clsFd bgF1″ title=”摺疊” id=”lnkFolderToggle” onclick=”fGoto(‘CC.toggleTree($(\’lnkFolderToggle\’), \’ulFolders\’)’)”/aa href=”javascript:fGoto();” class=”gfName” onclick=”fGoto(‘MM.getModule(\’folderMain\’)’)”文件夾/aa href=”javascript:fGoto();” class=”addFd bgF1″ title=”添加文件夾” onclick=”fGoto(‘MM.folderMain.add()’)”/a/h3ul class=”gFdBdy” id=”ulFolders” onmouseover=”try{MM.folder.handleDrag();}catch(exp){}”/ul/divdiv class=”gFd”h3 class=”gfTit”a href=”javascript:fGoto();” class=”clsFd bgF1″ id=”lnkServiceToggle” title=”摺疊” onclick=”fGoto(‘CC.toggleTree($(\’lnkServiceToggle\’), \’ulService\’)’)”/aa href=”javascript:fGoto();” class=”gfName” onclick=”fGoto(‘CC.goOutlink(\’/a/h/js3/\’+GE.dm+\’service.htm\’)’)”郵箱服務/a/h3ul class=”gSevBdy” id=”ulService”SCRIPT LANGUAGE=”JavaScript”var gServiceUrl = ‘ sms163|?\nupgrade163|\nmyresume|;mailname=$user$sid=$sid$\n myblog163|;username=$user$email=$uid$host=$host$\nmybill|;uid=$uid$sid=$sid$\naddress|MM.getModule(“address”);\nxport|MM.address.gotoXport();\npop3|MM.getModule(“pop3”)\ncards|;useremail=$uid$username=$user$sid=$sid$host=$host$\nrss|;username=$uid$\nvip163|\nstamp|;sid=$sid$action=getAlbum\ninvite|;host=$host$\nassist|\necard|;useremail=$uid$username=$user$sid=$sid$host=$host$\nmail188|;domain=$dm$\nmyblog|;username=$uid$email=$uid$host=$host$\n’;var gUrls = ‘ 6|\n11|\n12|\n20|\n21|\n22|;username=$user$\n23|\n28|;p=0l=50\n29|\n31|\n35|\n55|\n56|\n57|\n58|\n86|\n 33|;uid=$uid$url=;act=get\n40|;strCmjsLog=\n46|;sid=$sid$origin=$host$username=$user$\n51|\n53|;sid=$sid$host=$host$\n54|;sid=$sid$method=getStatus\n84|;host=$host$\n85|\n’;function fTrim(s){ return s.replace(/(^\s*)|(\s*$)/g, “”);}var aServiceUrl = gServiceUrl.split(“\n”);var aUrls = gUrls.split(“\n”);var gServiceUrlObj = {};var gUrlsObj = {};for(var i=0;iaServiceUrl.length;i++){ var v = aServiceUrl[i]; if(v != “”){ var a = fTrim(v).split(“|”); if(a.length == 2){ gServiceUrlObj[a[0]] = a[1]; } }}for(var i=0;iaUrls.length;i++){ var v = aUrls[i]; if(v != “”){ var a = fTrim(v).split(“|”); if(a.length == 2){ gUrlsObj[a[0]] = a[1]; } }}/SCRIPTLI id=myblog163A class=gfNm onfocus=this.blur(); onclick=”fGoto(‘CC.getServiceLink(\’myblog163\’);’)” href=”javascript:fGoto();”記事本/A/LILI id=stampA class=gfNm onfocus=this.blur(); onclick=”fGoto(‘CC.getServiceLink(\’stamp\’);’)” href=”javascript:fGoto();”集郵中心/A/LILI id=sms163A style=”FONT-WEIGHT: bold” class=gfNm onfocus=this.blur(); onclick=”fGoto(‘CC.getServiceLink(\’sms163\’);’)” href=”javascript:fGoto();”隨身郵/A/LILI id=upgrade163A class=gfNm onfocus=this.blur(); target=_blank href=”#” onclick=”this.href=gServiceUrlObj[‘upgrade163’]”新郵箱伴侶/A/LI!–LI id=vip163A class=gfNm onfocus=this.blur(); target=_blank href=”#” onclick=”this.href=gServiceUrlObj[‘vip163’]”升級到VIP/A/LI–/ul/div/tdtd class=”gRi” id=”divMain”div id=”divwelcome”div class=”WelPages”div class=”wel_Topbar” id=”divWelcomeHead”div class=”wel_user”b class=”wel_hi_user”span id=”spnWelcomeGreet”中午好/span,楊光彬/bdiv class=”w_jifen”div id=”divWelcomeJiFen”  a href=”javascript:fGoto()” onclick=”fGoto(‘CC.getJifen()’)” title=”點擊查看積分”點擊查看積分/a/div/div/divdiv class=”wel_inbox”b class=”icos iconinbox”/bdiv class=”fLe”您有 a style=”text-decoration:none” href=”javascript:fGoto()” onclick=”fGoto(‘MM.folder.sortSearch(1,1)’);return false”span id=”spnWelcomeNew” class=”Notice_Nu”1481/span/a 封 a href=”javascript:fGoto()” onclick=”fGoto(‘MM.folder.sortSearch(1,1)’);return false”未讀郵件/a,a href=”javascript:fGoto()” onclick=fGoto(“MM.getModule(‘folderMain’)”)管理文件夾/a/diviframe src=”;sid=ZCNYFPVKCrOsHwiKRWKKoVxaZzKKPxuaaction=new” frameborder=”0″ allowtransparency=”true” scrolling=”no” class=”ifm_mailblog”/iframe/divdiv class=”wel_Tr”div class=”wel_rl_nolim” title=”無限容量空間:已用1.02G”/divdiv id=”divWelTianQi”iframe class=”wel_i_weather” frameborder=”0″ allowtransparency=”true” scrolling=”no” src=””/iframe/div/div/divdiv class=”wel_Main_Main” id=”divWelcomeBody”div class=”wel_Main”div class=”wel_Mtab”div class=”wel_Mtab_head” id=”divWelcomeTab”scriptfAdPageWrite(fAdWelcomeTabsInfo)/script/divdiv class=”wel_i_bg” id=”divWelcomeContent”spandiv class=”weltab_main_f”div class=”img1″scriptfAdPageWrite(fAdWelcomeRandom(fAdWelcomeServiceLogo))/script/divdiv class=”txt1″scriptfAdPageWrite(fAdWelcomeRandom(fAdWelcomeServiceText))/script/div/divdiv class=”wel_if_mail” style=”text-align:center”div class=”wel_tj”div class=”wel_tj_tit”scriptt=fAdWelcomeServiceLink();fAdPageWrite(t.title)/script/divul class=”wel_tj_ul”liscriptfAdPageWrite(t.left1)/script/liliscriptfAdPageWrite(fAdWelcomeRandom(fAdWelcomeServiceLinkR1))/script/liliscriptfAdPageWrite(t.left2)/script/liliscriptfAdPageWrite(fAdWelcomeRandom(fAdWelcomeServiceLinkR2))/script/liliscriptfAdPageWrite(t.left3)/script/liliscriptfAdPageWrite(fAdWelcomeRandom(fAdWelcomeServiceLinkR3))/script/li/ul/div/divdiv class=”clear” style=”height:1px”/div/span/div/divdiv class=”wel_Ma300x260″scriptfAdPageWrite(fAdWelcomeRandom(fAdWelcome300x260))/script/divdiv class=”wel_Ma460x110″div class=”wel_Ma460x110M”div class=”wel_gjcont

怎麼配置lighttpd的VirtualHost

############ Options you really have to take care of ####################

## modules to load

# at least mod_access and mod_accesslog should be loaded

# all other module should only be loaded if really neccesary

# – saves some time

# – saves memory

server.modules = (

# “mod_rewrite”,

# “mod_redirect”,

# “mod_alias”,

“mod_access”,

“mod_cache”, # add

# “mod_cml”,

# “mod_trigger_b4_dl”,

# “mod_auth”,

# “mod_status”,

# “mod_setenv”,

# “mod_fastcgi”,

“mod_proxy”,

# “mod_simple_vhost”,

# “mod_evhost”,

# “mod_userdir”,

# “mod_cgi”,

“mod_compress”,

“mod_mem_cache”, #add

# “mod_ssi”,

# “mod_usertrack”,

# “mod_expire”,

“mod_secdownload”,

“mod_flv_streaming”,#add

# “mod_rrdtool”,

“mod_accesslog” )

######——————- cjj add 2008.8.15 b ———————-######

# tarting with lighttpd 1.4.0 three default modules are loaded automatically:

# * mod_indexfile

# * mod_dirlisting

# * mod_staticfile

######————————end———————————–######

## a static document-root, for virtual-hosting take look at the

## server.virtual-* options

server.document-root = “/srv/www/”

## where to send error-messages to

server.errorlog = “/var/log/lighttpd/error.log”

# files to check for if …/ is requested

index-file.names = ( “index.jsp”, “index.html”,

“index.htm”, “default.htm” )

## set the event-handler (read the performance section in the manual)

# server.event-handler = “freebsd-kqueue” # needed on OS X

######——————— cjj 2008.8.15 b ———————–######

# 事件處理

#

#對於linux kernel 2.6來說,沒有別的可說 加上這一句足矣

server.event-handler = “linux-sysepoll”

######————————end———————————–######

######——————cjj add 2008-8.15 b ————————######

##為什麼file handles 要多於 connections?

##The other file handles are used for fastcgi and/or files,所以我們設置如下:

server.max-fds = 4096

server.max-connections = 2048 #最大連接數設置,默認1024

#max-connection=mad-fds/2(mybe /3)

######————————end———————————–######

######—————— cjj add 2008.8.15 b ———————–######

###defaults:

##server.max-keep-alive-requests = 16

##server.max-keep-alive-idle = 5

##server.max-read-idle = 60

##server.max-write-idle = 360

###

server.max-keep-alive-requests = 0

server.network-backend = “linux-sendfile”

######————————end———————————–######

# mimetype mapping

mimetype.assign = (

“.pdf” = “application/pdf”,

“.sig” = “application/pgp-signature”,

“.spl” = “application/futuresplash”,

“.class” = “application/octet-stream”,

“.ps” = “application/postscript”,

“.torrent” = “application/x-bittorrent”,

“.dvi” = “application/x-dvi”,

“.gz” = “application/x-gzip”,

“.pac” = “application/x-ns-proxy-autoconfig”,

“.swf” = “application/x-shockwave-flash”,

“.tar.gz” = “application/x-tgz”,

“.tgz” = “application/x-tgz”,

“.tar” = “application/x-tar”,

“.zip” = “application/zip”,

“.mp3” = “audio/mpeg”,

“.m3u” = “audio/x-mpegurl”,

“.wma” = “audio/x-ms-wma”,

“.wax” = “audio/x-ms-wax”,

“.ogg” = “application/ogg”,

“.wav” = “audio/x-wav”,

“.gif” = “image/gif”,

“.jar” = “application/x-java-archive”,

“.jpg” = “image/jpeg”,

“.jpeg” = “image/jpeg”,

“.png” = “image/png”,

“.xbm” = “image/x-xbitmap”,

“.xpm” = “image/x-xpixmap”,

“.xwd” = “image/x-xwindowdump”,

“.css” = “text/css”,

“.html” = “text/html”,

“.htm” = “text/html”,

“.js” = “text/javascript”,

“.asc” = “text/plain”,

“.c” = “text/plain”,

“.cpp” = “text/plain”,

“.log” = “text/plain”,

“.conf” = “text/plain”,

“.text” = “text/plain”,

“.txt” = “text/plain”,

“.dtd” = “text/xml”,

“.xml” = “text/xml”,

“.mpeg” = “video/mpeg”,

“.mpg” = “video/mpeg”,

“.mov” = “video/quicktime”,

“.qt” = “video/quicktime”,

“.avi” = “video/x-msvideo”,

“.asf” = “video/x-ms-asf”,

“.asx” = “video/x-ms-asf”,

“.wmv” = “video/x-ms-wmv”,

“.bz2” = “application/x-bzip”,

“.tbz” = “application/x-bzip-compressed-tar”,

“.tar.bz2” = “application/x-bzip-compressed-tar”,

# default mime type

“” = “application/octet-stream”,

)

# Use the “Content-Type” extended attribute to obtain mime type if possible

#mimetype.use-xattr = “enable”

## send a different Server: header

## be nice and keep it at lighttpd

# server.tag = “lighttpd”

#### accesslog module

accesslog.filename = “/var/log/lighttpd/access.log”

## deny access the file-extensions

#

# ~ is for backupfiles from vi, emacs, joe, …

# .inc is often used for code includes which should in general not be part

# of the document-root

url.access-deny = ( “~”, “.inc” )

$HTTP[“url”] =~ “\.pdf$” {

server.range-requests = “disable”

}

##

# which extensions should not be handle via static-file transfer

#

# .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi

static-file.exclude-extensions = ( “.php”, “.pl”, “.fcgi” )

######### Options that are good to be but not neccesary to be changed #######

## bind to port (default: 80)

server.port = 80

## bind to localhost (default: all interfaces)

server.bind = “192.168.0.128”

## error-handler for status 404

#server.error-handler-404 = “/error-handler.html”

#server.error-handler-404 = “/error-handler.php”

## to help the rc.scripts

#server.pid-file = “/var/run/lighttpd.pid”

###### virtual hosts

##

## If you want name-based virtual hosting add the next three settings and load

## mod_simple_vhost

##

## document-root =

## virtual-server-root + virtual-server-default-host + virtual-server-docroot

## or

## virtual-server-root + http-host + virtual-server-docroot

##

#simple-vhost.server-root = “/srv/www/vhosts/”

#simple-vhost.default-host = “”

#simple-vhost.document-root = “/htdocs/”

######——————- cjj 2008.8.15 b ————————#######

## 錯誤轉向統一處理

## Format: errorfile-prefixstatus-code.html

## – …./status-404.html for ‘File not found’

#server.errorfile-prefix = “/usr/share/lighttpd/errors/status-“

#server.errorfile-prefix = “/srv/www/errors/status-“

#create static pages for your error handling in directory /srv/www/yoursite/htdocs/errors.

#Based on the above entry you must name your files status-(status-code).html 如:404.html,500.html

server.errorfile-prefix = “/srv/www/-“

######————————end———————————–######

## virtual directory listings

dir-listing.activate = “enable” #允許列表,一般不允許,default:disable

dir-listing.encoding = “utf-8” #add 編碼,不加沒啥影響,因為列表一般是禁用的,default:ISO-8859-1,

######

####### If the URL is like ^/download/ then enable/disable dir-listing

$HTTP[“url”] =~ “^/download/” {

dir-listing.activate = “enable”

}

######——————cjj add 2008.8.15—————————######

#lighttpd can utilize FAM/Gamin to cache stat call.

#possible values are: disable, simple or fam.

server.stat-cache-engine = “simple”

#defaults to /var/tmp as we assume it is a local harddisk

#server.upload-dirs = “/var/tmp”

#if you have multiple lighttpd servers serving static content then you should use

#Otherwise you will generate lesser number of 304 responses

etag.use-inode = “disable”

#default “enable”

######————————end———————————–######

## enable debugging

#debug.log-request-header = “enable”

#debug.log-response-header = “enable”

#debug.log-request-handling = “enable”

#debug.log-file-not-found = “enable”

### only root can use these options

#

# chroot() to directory (default: no chroot() )

#server.chroot = “/”

## change uid to uid (default: don’t care)

#server.username = “wwwrun”

## change uid to uid (default: don’t care)

#server.groupname = “wwwrun”

######————————— cjj add 2008.8.18 c —————————–######

####cache module

cache.support-queries = “enable” #ignore ‘?’ in url

cache.bases = (“/var/cache/lighttpd/data1″,”/var/cache/lighttpd/data2”) #write cached files in /data/cache directory

cache.enable=”enable”

#$HTTP[“host”]==”video.example.org”{cache.enable=enable}

cache.refresh-pattern = (

“/$” = “5 update-on-refresh no-expire-header”, # update homepage every 5 minutes and on refresh requests without setting expire headers

“\.(?i)(flv)$” = “0 fetchall-for-range-request flv-streaming”, # to work with mod_flv_streaming for flv files

“\.(?i)(js|css|xml)$” = “240”, # update js/css/xml every 4 hours and on refresh requests

“\.(?i)(htm|html|shtml)$” = “30”, # update html/htm/shtml every 30 minutes and on refresh requests

“\.(?i)(jpg|bmp|jpeg|gif|png)$” = “2880”, # update graphics files every 2 days

“\.(?i)(rar|zip|wmv|avi|mp3|ape|rm|mpeg|mpg|wma|asf|rmvb|flv)$” = “0 fetchall-for-range-request”, # cache media file forever

“.” = “30 update-on-refresh” # default to update every 30 minutes and on refresh requests

)

#mod_proxy_core setting, config your backend servers here

proxy-core.backends = ( “192.168.0.128:80”, “192.168.0.128:80”)

proxy-core.balancer = “round-robin” # or “sqf” or “carp”

proxy-core.protocol = “http”

#it’s important to enable proxy-core.worked-with-modcache,

# or mod_proxy_core will not cooperate with mod-cache

proxy-core.worked-with-modcache = “enable”

######———————————-end——————————————-######

########——————————-cjj 2008.8.15 ———————————######

#### compress module

compress.cache-dir = “/var/cache/lighttpd/compress/”

compress.filetype = (“text/plain”, “text/html”,”text/javascript”,”text/css”,”text/xml”)

######————————————-end—————————————-######

######———————————-cjj add 2008.8.18—————————–######

#### mem_cache module

mem-cache.filetypes=(“application/x-javascript”, “text/css”, “text/html”, “text/javascript”)

##maxium memory in Mbytes mod-mem-cache can use. default 512 Megabytes

mem-cache.max-memory = 1024

##maxium file size in Kbytes of single file to cache in memory. Default: 512 (means 512 ”Kilobytes”).

mem-cache.max-file-size = 1024

##number of cached memory items to remove when used memory reached maxmemory by LRU algorthim.Default 200

mem-cache.lru-remove-count = 1000

##memory cache’s expire time in minutes.Default: 0 (means to check file update for every request)

mem-cache.expire-time = 1440 # 1 day

######————————————-end—————————————-######

######———————————-cjj add 2008.8.18—————————–######

#### proxy module

## read proxy.txt for more info 使用proxy,cache模塊才起作用

$HTTP[“url”]=~”.jsp|.do|/”{

proxy.balance=”fair”

proxy.server=(“/” =(

(“host” = “192.168.0.3”)

#(“host” = “122.200.97.146”)

)

)

}

##default:

#proxy.server = ( “.jsp” =

# ( “localhost” =

# (

# “host” = “192.168.0.128”,

# “port” = 80

# )

# )

# )

##均衡 example

#$HTTP[“host”] == “local.” {

# proxy.balance = “hash”

# proxy.server = ( “/” = (

# ( “host” = “192.168.0.125” ),

# ( “host” = “192.168.0.132” )

# )

# )

# }

######————————————-end—————————————-######

######———————————-cjj add 2008.8.19 b—————————######

## mod_secdownload

##URL has to have the format:uri-prefix/token/timestamp-in-hex/rel-path

##token=MD5(secret.filename.time)

secdownload.secret = “cjj”

secdownload.document-root = “/srv/www/download/”

secdownload.uri-prefix = “/dl/” #default : /

secdownload.timeout = 0 #default : 60(s),0好像是無限需要進一步驗證

######————————————-end—————————————-######

原創文章,作者:LDQVQ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/330637.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
LDQVQ的頭像LDQVQ
上一篇 2025-01-16 15:46
下一篇 2025-01-16 15:46

相關推薦

  • Java 監控接口返回信息報錯信息怎麼處理

    本文將從多個方面對 Java 監控接口返回信息報錯信息的處理方法進行詳細的闡述,其中包括如何捕獲異常、如何使用日誌輸出錯誤信息、以及如何通過異常處理機制解決報錯問題等等。以下是詳細…

    編程 2025-04-29
  • 使用Python爬蟲獲取電影信息的實現方法

    本文將介紹如何使用Python編寫爬蟲程序,來獲取和處理電影數據。需要了解基本的Python編程語言知識,並使用BeautifulSoup庫和Requests庫進行爬取。 一、準備…

    編程 2025-04-28
  • Python爬取網頁信息

    本文將從多個方面對Python爬取網頁信息做詳細的闡述。 一、爬蟲介紹 爬蟲是一種自動化程序,可以模擬人對網頁進行訪問獲取信息的行為。通過編寫代碼,我們可以指定要獲取的信息,將其從…

    編程 2025-04-28
  • 如何使用Python執行Shell命令並獲取執行過程信息

    本文將介紹如何使用Python執行Shell命令並獲取執行過程信息。我們將從以下幾個方面進行闡述: 一、執行Shell命令 Python內置的subprocess模塊可以方便地執行…

    編程 2025-04-28
  • Python實現身份信息模擬生成與查驗

    本文將從以下幾個方面對Python實現身份信息模擬生成與查驗進行詳細闡述: 一、身份信息生成 身份信息生成是指通過代碼生成符合身份信息規範的虛假數據。Python中,我們可以使用f…

    編程 2025-04-27
  • Dapper使用getschema獲取表信息

    本文旨在介紹Dapper中使用getschema獲取表信息的方法和注意事項。 一、獲取某張表的所有列信息 使用Dapper獲取某張表信息,可以使用 `IDbConnection.G…

    編程 2025-04-27
  • 通過提交信息搜索-使用git

    本篇文章重點講解如何使用git通過提交信息來搜索。我們將從多個方面介紹如何使用git來搜索提交信息,並提供相應的代碼示例以供參考。 一、搜索方式 Git提供了三種搜索方式,分別為:…

    編程 2025-04-27
  • 已裝備我軍的空中信息化作戰平台

    本文將會從多個方面詳細闡述已裝備我軍的空中信息化作戰平台。 一、平台概述 已裝備我軍的空中信息化作戰平台是一個全新的作戰系統,具備實時數據採集、處理、分析、共享的能力。它可以在不同…

    編程 2025-04-27
  • Linux查看系統信息

    一、CPU信息 Linux系統下,查看CPU的信息最常用的命令是lscpu。該命令可以顯示CPU架構、核心數量、線程數、緩存大小、CPU頻率等信息。例如: lscpu 該命令會輸出…

    編程 2025-04-24
  • 軟考 信息安全工程師

    軟考 信息安全工程師是一項技能型國家級資格認證考試,主要測試考生在信息安全領域的理論知識和實踐技能,是證明個人信息安全能力的重要證書。本文將從多個方面對軟考 信息安全工程師做詳細的…

    編程 2025-04-23

發表回復

登錄後才能評論