當前位置:首頁 » 存儲配置 » 前端庫地址怎麼配置

前端庫地址怎麼配置

發布時間: 2022-10-05 00:21:43

㈠ 在ASP.NET 5中如何方便的添加前端庫

要通過Bower來添加前端庫(以之前文章介紹過的MetroUI安裝為例),打開項目下面的bower.json文件,在「dependencies」裡面,添加一行描述:"metro": "3.0.5"。在輸入包名的時候,VS會通過智能感知給出提示,包括版本號的選擇也會給出。最終代碼如下:
{ "name": "ASP.NET", "private": true, "dependencies": { "bootstrap": "3.3.4", "jquery": "1.10.2", "jquery-validation": "1.11.1", "jquery-validation-unobtrusive": "3.2.2", "hammer.js": "2.0.4", "bootstrap-touch-carousel": "0.8.0", "metro": "3.0.5"
}
}

添加這行後,保存bower.json文件,VS就會自動去恢復MetroUI的包。展開項目中的「dependencies」節點下的「Bower」節點,就會看到「metro (3.0.5)」的節點。根據網路情況和包大小,可能需要稍等一下,直到這個節點後面的「not installed」字樣消失,就說明包恢復成功了。如果自動恢復有問題,也可以點擊這個節點,從右鍵菜單中選擇「Update Package」。
安裝好的包,只是被下載到了項目文件夾中的「bower_components」文件夾中的相應文件夾。你還需要通過Gulp或者Grunt這樣的任務執行器把包的發布文件到lib目錄下(lib目錄是根據VS的習慣,你也可以選擇其他目錄)。由於VS默認項目模板使用的是Gulp,那麼就打開gulpfile.js文件,找到「」這個task。在「bower」裡面,添加描述。由於MetroUI的發布文件被放到了兩個文件夾下「build」和「fonts」下,所以編寫描述需要一點技巧來處理多個文件夾的。具體看如下代碼:
var bower = { "bootstrap": "bootstrap/dist/**/*.{js,map,css,ttf,svg,woff,eot}", "bootstrap-touch-carousel": "bootstrap-touch-carousel/dist/**/*.{js,css}", "hammer.js": "hammer.js/hammer*.{js,map}", "jquery": "jquery/jquery*.{js,map}", "jquery-validation": "jquery-validation/jquery.validate.js", "jquery-validation-unobtrusive": "jquery-validation-unobtrusive/jquery.validate.unobtrusive.js", "metro": "metro/build/**/*.{js,map,css}", "metro/fonts": "metro/fonts/*.{ttf,svg,woff,eot}"
}

完善Gulp任務代碼後,還需要執行任務,來把metro的發布文件復制到wwwroot下面的具體文件夾下面(在本例中是lib)。執行Gulp任務可以在「Task Runner Explorer」中手動執行,也可以編譯解決方案或項目來自動執行。
最後,完成前端庫的安裝後,就是在HTML或視圖文件中引用,具體寫法我就不重復了。
應該說,VS 2015和ASP.NET 5的前端開發模式,既保持了現在業界流行的常規做法,又充分發揮了Visual Studio的強大IDE功能,讓大家添加前端庫變得輕而易舉。

㈡ 伺服器上資料庫地址怎麼設置

  1. 伺服器地址可以是:localhost 、127.0.0.1、伺服器ip地址;

    默認填寫localhost


  2. 資料庫地址就是要調用的資料庫的伺服器ip

    伺服器和站點在相同伺服器上可以使用第一點說的三種方式

    伺服器和站點不在相同ip上就需要輸入資料庫的外網ip地址。


㈢ 地址庫變化 怎麼更新前端編碼文件

這個是組內一位同學在平時開發中,發現調試不便,為團隊開發的熱更新工具。很厲害,文章中的技術實現內容也是我了解了他的具體實現思路後,整理出來的。
工具源碼 EHU(esl-hot-update)
熱更新是什麼
熱更新就是當你在開發環境修改代碼後,不用刷新整個頁面即可看到修改後的效果。
如果你的項目中使用了webpack的話,你會很幸運,藉助webpack-dev-server插件可以實現項目的熱更新。
解決的問題
對於大型的系統級別項目會有下面幾個特點
模塊化(AMD)模式的廣泛使用後,開發環境散文件特別多,很容易上百,一不小心還能上千
初始化的內容特別多,各種底層庫,ui庫等等
這兩個特點直接導致每次調試後,刷新會很慢。如果初始化的js達到上千的數量級,每一次重新刷新都是5s,10s,甚至20s的等待。
而熱更新的目的就是為了在一定程度上減少這5s,10s,甚20s的浪費。
遇到的問題
我們使用的是網路自己的開發環境工具edp,首先他不支持熱更新
我們使用的AMD實踐也是網路自己的esl,而且即使是requirejs也暫時沒有找到對應的熱更新策略,假如requirejs有對應的,我們也無法直接使用
所以最終的結論是我們自己去實現一個基於我們自己業務的。這樣我們考慮的面不用太廣,並且解決方案的更有針對性,即面向我們現有的業務框架。最重要的是可以嘗試修改底層框架做配合。
等待路踩通了,我們再去考慮普適性。
解決的思路
從ehu/package.json 這個文件中,我們就可以看出一些具體的思路
需要一個watch功能,即能夠監聽到文件的修改
socket.io通知瀏覽器處理文件的改變
修改esl這個文件,達到能夠實時更新的效果
當時最簡單的考慮,就是文件改變了後,能夠通知瀏覽器,瀏覽器去重新load這個文件並且執行一次。這個時候再重新去打開這個模塊或者功能後,會發現新load的代碼在執行後會覆蓋上一次的。
所以當時的我的第一直覺是,esl重復require時,如果後面一次會覆蓋前面的,那麼可以通過簡單的覆蓋思路去嘗試,結果發現覆蓋不了。經過驗證,發現是esl內部維護了一個map,即require過的模塊會存起來。我們如果希望更新這個模塊,只能將map中的對應模塊名刪除。(後面會詳細講述esl的改造)
對於工具的要求
對應這個工具,我當時也提出了幾個要求
esl必然是需要修改的,但是如何對開發人員透明?首先是不能讓大家都做這種修改。
頁面中也必須加入socket.io支持,那麼我們如何在不影響其他人員開發的情況下加入?
我們做的屬於beta版本,如何選擇性的使用?ehu工具和以前的開發模式隨意切換?
安裝方便,能否只是作為一個工具,即插即用,不需要繁瑣的配置?
如何使用
npm install -g ehu(mac下需要sudo,windows下需要管理員許可權)
在原來執行edp webserver start命令的路徑 執行 ehu(不再需要執行 edp webserver start)
原來埠號8848修改為8844(原8848依舊可以使用,但不支持熱更新)
首先使用的方式很簡單,為此特意將工具打包到npm上,以後就算有升級,僅僅需要大家update即可。
另外從使用角度,也盡量集成化(一句命令行即可),避免為了這個工具的使用而做太多額外的事情。
依賴的框架 "dependencies": { "async": "^1.5.0", "commander": "^2.9.0", "express": "^4.13.3", "express-http-proxy": "^0.6.0", "lodash": "^3.10.1", "socket.io": "^1.3.7", "watch": "^0.16.0" }
幾個必要的
watch ——監聽文件變化
socket.io ——和瀏覽器的實時通訊
express ——搭建一個服務
express-http-proxy ——代理
commander ——便於自己寫node命令
工具類:
async 和 lodash
框架的思想
先看看昨天對於這個工具提出的幾個要求
esl必然是需要修改的,但是如何對開發人員透明?首先是不能讓大家都做這種修改。
頁面中也必須加入socket.io支持,那麼我們如何在不影響其他人員開發的情況下加入?
我們做的屬於beta版本,如何選擇性的使用?ehu工具和以前的開發模式隨意切換?
安裝方便,能否只是作為一個工具,即插即用,不需要繁瑣的配置?
對於1和2,我們其實是需要修改/添加一些代碼的,但是代碼都不希望提交到項目的開發環境,因為這些代碼生成環境完全不需要。
所以我們的解決方案是:攔截,改寫(偷梁換柱)
舉個例子,當我們需要對esl做一些改造時,我們處理方式是當路由指向esl.js時,我們換成另外一個esl-ehu.js(esl-ehu.js是對esl.js改造後的)返回去,這樣就對開發環境的代碼透明了。
socket.io的支持也是同理,我們可以在返回html時,改寫html的代碼,加入對於socket.io的引入。
上面的思路其實來源於之前項目構建打包。
對於3,我們希望在使用工具時,任然能很快切換到以前模式,這樣做兼容的目的是希望工具更有競爭力,能吸引大家使用。
我們的解決方案是:內部實現一個子線程,埠號依然是以前的,而且訪問這個埠,就繞過了這個工具。
對於子線程child_process,我們還遇到一個問題,就是子線程跑系統的時候,經常掛掉,今天剛剛找到一個解決方案,後面會單開一個文章講這個坑。
對於4,其實就是使用npm方式
技術細節
第一步:搭建一個新服務作為底層,去託管住我們現在edp服務,新服務上有一個路由配置,對於我們需要處理的,攔截。對於不用處理的直接代理給edp
代碼參考
var mid = express(); mid.all('*', httpProxy(config.defaultServer, { // 先走特殊規則,否則就代理到默認web server filter: function(req, res) { return !ruleRoute(req, res); }, forwardPath: function(req, res) { return URL.parse(req.url).path; } })); // 由express-http-proxy託管路由 app.use('/', mid);
ruleRoute 就是一些攔截處理
在此之前,啟動下子進程
var child = require('child_process'); var cli = child.exec(defaultServerCLI); cli.stdout.on('data', function (log) { !isServerStarted && (cb(null, log)); isServerStarted && console.log(log); });
此處有坑,後面單開文章描述
第二步: 因為上面攔截後的返回的文件已經支持socket.io,esl等底層已經修改了,所以下面是需要去監聽文件通知瀏覽器做對應處理。
// 啟動socket.io服務 io = require('socket.io')(server); io.on('connection', function (socket) { socket.emit('hello'); }); // 監視文件改動 initWatch();
第三步: 做一些集成工作
program .version('0.0.6') .usage('[options]') .option('-p, --port <n>', 'Set the port', setPort) .option('-n, --noServerCLI', '...', noServerCLI) .parse(process.argv);
集成到node命令中
第四步: 默認配置
mole.exports = { // 默認的伺服器 defaultServer: 'http://127.0.0.1:8848', // 默認的伺服器啟動命令 defaultServerCLI: 'edp webserver start', // 從伺服器根目錄到需要監控的文件夾中間path baseDir: 'nirvana-workspace', // hot update 需要watch的文件夾(不包括baseDir) watchDirs: 'src', // 入口文件(不包括baseDir) indexHTML: 'main.html', // ehu啟動埠號(不可與默認的伺服器埠號沖突) port: 8844 };
源碼中有很多邏輯是處理配置的
瀏覽器依賴
socket.io ——瀏覽器端僅僅依賴socket這個去和服務端通信
通信邏輯
// 建立連接 socket.on('hello', function () { log(getLogMsgPrefix(), 'HotUpdate已啟動!'); }); // 檢測到文件改動 socket.on('hotUpdate', function (file) { // log(getLogMsgPrefix(), '檢測到文件改動', file); // ....處理文件修改後對應熱更新邏輯 }); 對css/less更新的處理
這個原理比較簡單,頁面監聽到樣式的修改,重新載入一次樣式即可,簡單的覆蓋。
但是存在一個潛在問題,因為樣式是簡單的覆蓋,所以,如果修改是刪除了樣式,是無法生效的。
舉例:修改前:
display: none; overflow: hidden; position: relative; background: #FFFFFF; border: 1px solid #E8E8E8; margin-top: 20px;
修改後:
display: none; overflow: hidden; position: relative; background: #FFFFFF;
刪除的 border 和 margin-top 其實是沒有生效的
這個也是後期需要解決的一個問題。
對模板更新的處理
目前項目中使用的是tpl的模板引擎。
現在就遇到一個問題,在熱更新時,模板引擎其實是重復載入模板的,那麼就涉及到重復載入是否後面的會覆蓋前面問題。
查看載入模板的源碼後,發現根據配置有三個選擇, 覆蓋 , 忽略 和 報錯 , 我們業務中使用的配置是遇到重復後會報錯處理,所以我們需要在不修改業務默認屬性的情況下,添加一些邏輯。
// [esl-hot-update] 重新載入需要覆蓋 window.EHU_HOT_UPDATE_OPTIONS && window.EHU_HOT_UPDATE_OPTIONS.etpl.isOverride && (namingConflict = 'override'); switch (namingConflict) { /* jshint ignore:start */ case 'override': engine.targets[name] = target; context.targets.push(name); case 'ignore': break; /* jshint ignore:end */ default: throw new Error('Target exists: ' + name); }
window.EHU_HOT_UPDATE_OPTIONS.etpl.isOverride 這個是修改後自己實現的控制配置修改的邏輯。
然後這個文件加入到服務端的路由中,請求時替換。
對js更新的處理
這里邏輯比較復雜,因為需要修改底層的AMD模塊載入的邏輯。
js沒有模板那麼簡單,不是直接覆蓋,因為在AMD模式中,每一個文件,都是被上一個文件調用執行的結果。
所以我們處理的邏輯是不僅需要重新載入修改的文件,並且遞歸所有直接或者間接調用他的文件,全部重新載入。
所以從上面的特點可以看出,這個工具目前階段主要適用於業務模塊的開發,因為業務的依賴不會特別深,對於dep中的核心文件修改,就不是很合適,一旦文件比較底層,熱跟新是重新載入的模塊也會非常多。
另外也有很多其他的坑,還在不斷優化中。
總結
這次實踐其實就是業務中遇到的問題(系統太龐大,調試太麻煩),如何解決問題,如何把解決的思路變成一個解決方案,分享給團隊。
因為自己解決了,和形成一個解決方案還是有非常大的差別的,例如我們在形成方案的過程中,就嘗試了很多新東西,踩了很多坑。
目前還有個坑就是chrome瀏覽器,調試的Source資源時,如果一個資源重復載入,內存中會更新,但是對應的資源沒有更新,導致斷點時,映射不對(斷點失效),目前暫時的解決方案是,每次請求時添加時間戳,讓Source映射的資源強制更新。這個可以正常斷點,但是斷點沒有記憶功能(坑啊,因為文件變了)。

㈣ 怎樣將寫在前端代碼里的鏈接,改成可配置的

有多種方法,比如通過將配置寫進json文件,通過ajax請求該文件獲取內容,將配置中內容通過js動態修改對應變數或者DOM中的鏈接,或者通過後端編寫介面,原理一樣,通過後端讀取配置並賦值即可

㈤ 2台1U伺服器,一台想做web前端,一台做資料庫,如何配置比較合理

你可以這樣:一台WEB做前端,兩個網卡,一個對外,一個對內一台做後台資料庫,只需要一個對內的網卡和WEB相連!現在很多應用都是用這種方式! 查看原帖>>

㈥ 前端開發需要配置什麼環境

web前端開發環境的搭配:

A、Sublime3安裝配置:

Sublime跨平台的前端開發神器,是一個共享軟體,免費使用;下載最新Sublime3安裝包;

-官網地址:http://www.sublimetext.com/

-安裝包管理器

打開Sublime3控制台,ctrl+~

輸入安裝包管理器命令代碼,注意需要聯網才能安裝,因為是在線下載包

包管理器的官網地址:https://packagecontrol.io

-安裝第三方插件(包)

打開命令面板:ctrl+shift+p;

輸入install,然後回車,然後可以搜索想要的插件,回車安裝;Atom工具使用

B、Atom工具使用:

由github發布的前端開發工具,集成了chrome的調試工具,是一款非常強大和開發的開發工具平台。在file裡面的setting裡面進行設置,包括字體的大小,快捷鍵,背景顏色主題等;

官網地址:https://atom.io/

C、WebStorm10的安裝與使用:

WebStrom是最專業的前端IDE開發工具,是一個非常重量級的開發工具,是專業為我們前端設計的IDE,用他來開發是效率非常高;

D、總結三款開發工具的優劣:

Sublime3:需要安裝第三方的包,一般。Atom:集成度非常好,也很輕,需要自己安裝第三方的包。Webstrom:大項目,建議使用webstrom,非常強大,但是也很重。

㈦ 前端環境的安裝與配置

前端環境的安裝與配比,其實前端的安裝是非常有麻煩的,但是他的配比看看是不是一樣,如果要不一樣的話,他倆操作系統也是不一樣的。

㈧ 做javaweb前端開發 要求輸入指定地址訪問資料庫的數據

首先你要檢查你的資料庫的埠號是否正確,接下來你要確定項目中是否導入數據連接的jar包,再接著就是看你連接的資料庫sqlserver是否開啟,數據表是否存在於資料庫中,最後看你的資料庫賬號,密碼是否設置正確

㈨ 如何將前端網頁與後台資料庫連接

1、您需要掌握的第一件事是資料庫查詢語句。這是最簡單的資料庫查詢語句:SELECT * FROM sys_role,這意味著從角色表中查詢所有信息。以下顯示了查詢結果。此結果需要顯示在首頁上。需要代碼來調用這個sql語句。

熱點內容
推理密碼為什麼打不開保險箱 發布:2022-11-28 00:09:28 瀏覽:169
安裝程序引擎拒絕訪問 發布:2022-11-28 00:06:02 瀏覽:700
ue4編譯卡死 發布:2022-11-28 00:03:14 瀏覽:260
如何斷點測試存儲過程 發布:2022-11-28 00:02:03 瀏覽:322
表示源碼 發布:2022-11-28 00:00:55 瀏覽:478
docker自製鏡像靜態編譯 發布:2022-11-27 23:59:34 瀏覽:767
硬碟存儲時效 發布:2022-11-27 23:58:25 瀏覽:675
資料庫跑 發布:2022-11-27 23:55:50 瀏覽:808
java重寫類 發布:2022-11-27 23:55:50 瀏覽:15
hashtablephp 發布:2022-11-27 23:51:35 瀏覽:339