addToArr2(item){
var hasItem = this.arr2.some(k=>{
return k.id == item.id
})
hasItem || this.arr2.push(item)
}你的描述我看的稀里糊涂。。。。你想辦法理一下思路,簡(jiǎn)便一下發(fā)言,這樣我們才好幫你找問(wèn)題。。
很簡(jiǎn)單的問(wèn)題花了兩天時(shí)間,終于解決了,我F...佛慈悲,咳咳嗯,正經(jīng)說(shuō)說(shuō)怎么回事
項(xiàng)目是要部署在阿里云上對(duì)外的,簡(jiǎn)單說(shuō)就是要大家在地址欄敲個(gè)xxx.com就能訪問(wèn)到我的網(wǎng)站。而樓主之前一直項(xiàng)目組做本地調(diào)試
假設(shè)本地有兩個(gè)Vue工程,如果一個(gè)工程被npm run dev,就會(huì)跑在localhost:8080,那么80端口被占用了,不能再占一個(gè)8080,只能改用8081,做法如題問(wèn)中描述
但是,當(dāng)發(fā)布到阿里云之后,設(shè)置好的8081不起作用了怎么回事呢?
現(xiàn)在針對(duì)同一個(gè)阿里云分配的IP地址,樓主申請(qǐng)了兩個(gè)域名hehe.com和lala.com,希望訪問(wèn)hehe.com時(shí)對(duì)應(yīng)顯示工程hehe,訪問(wèn)lala.com時(shí),對(duì)應(yīng)顯示工程lala
其實(shí)我們的所有設(shè)置都是針對(duì)開(kāi)發(fā)環(huán)境(關(guān)鍵字:dev/development),而部署在阿里云上被稱為生產(chǎn)環(huán)境(關(guān)鍵字:production)
那生產(chǎn)環(huán)境怎么還不受代碼控制呢?這個(gè)需要展開(kāi)來(lái)講:
我們開(kāi)發(fā)的工程,需要一步步測(cè)試調(diào)試
在開(kāi)發(fā)環(huán)境下修改一小段code都可以看到相應(yīng)的效果
而當(dāng)你解決所有bug,認(rèn)為代碼perfect的時(shí)候,就會(huì)npm run build
這是做什么呢?就是把你的項(xiàng)目打包成一個(gè)靜態(tài)文件,什么叫靜態(tài)文件?Emmm...就理解成打包成一坨,里里外外都不能改的,可以直接運(yùn)行出你perfect的效果
這個(gè)文件在哪里呢?當(dāng)你build之后會(huì)看到根目錄下有個(gè)dist文件,吶,就是這個(gè),先記住他哦
然后就可以運(yùn)行了么?Nope
這是個(gè)文件,讓它run在阿里云服務(wù)器上我們需要一個(gè)代理服務(wù)器nginx,你可以理解為你有個(gè).doc文件,總需要個(gè)Microfoft Word來(lái)打開(kāi)的對(duì)吧,這里的nginx可以幫你打開(kāi)靜態(tài)文件讓它run起來(lái)
所以
nginx.conf,吶關(guān)鍵來(lái)啦,這個(gè)配置文件可以幫助我們實(shí)現(xiàn)對(duì)應(yīng)域名,對(duì)應(yīng)文件的強(qiáng)大功能啦,下面粘貼一小段配置代碼,可以看到hehe工程和hehe.com對(duì)對(duì)應(yīng)起來(lái)了,可以看到lala工程和lala.com對(duì)對(duì)應(yīng)起來(lái)了,端口號(hào)可以通過(guò)修改listen后的數(shù)字來(lái)設(shè)置#第一個(gè)服務(wù)器
server {
#這里的default_server標(biāo)識(shí)服務(wù)器為默認(rèn)服務(wù)器,無(wú)對(duì)應(yīng)域名情況下會(huì)對(duì)應(yīng)至該服務(wù)器
listen 80 default_server;
#和上一句語(yǔ)義相同,上句對(duì)應(yīng)Ipv4這里對(duì)應(yīng)Ipv6
listen [::]:80 default_server;
#對(duì)應(yīng)的靜態(tài)文件根目錄,把你的hehe工程的dist里面的內(nèi)容放在這里
root /var/www/hehe;
index index.html index.htm index.nginx-debian.html;
#對(duì)應(yīng)的第一個(gè)域名
server_name hehe.com;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ @router;
index index.html;
}
location @router{
rewrite ^.*$ /index.html last;
}
}
#第二個(gè)服務(wù)器
server {
#這里應(yīng)該不設(shè)置default_server否則會(huì)報(bào)錯(cuò),注:端口號(hào)可與另一服務(wù)器重復(fù)
listen 80;
listen [::]:80;
#對(duì)應(yīng)的靜態(tài)文件路徑
root /var/www/lala;
index index.html index.htm index.nginx-debian.html;
#對(duì)應(yīng)的第二個(gè)域名
server_name lala.com;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ @router;
index index.html;
}
location @router{
rewrite ^.*$ /index.html last;
}
}
你先看下結(jié)束的分號(hào)是不是英文的分號(hào),以及return后的那個(gè)分號(hào)之后的那個(gè)反引號(hào)去掉
原因已經(jīng)找到,因?yàn)槲覕?shù)據(jù)庫(kù)的主鍵id不是自增的,而laravel默認(rèn)的主鍵id是自增,并且是強(qiáng)制轉(zhuǎn)換為int,所以返回?cái)?shù)據(jù)時(shí)被轉(zhuǎn)換了,因此返回的就會(huì)一直是0
base64轉(zhuǎn)碼一下唄
raw:文件內(nèi)容。
blame:按行顯示最新提交的信息。
history:文件的歷史記錄。
如果字段都是一樣的話,可以考慮把多個(gè)結(jié)果集用union連起來(lái),然后再排序
你把置頂?shù)奈恼路旁诰彺嬷谢蛘吡硪粡埍碇校ㄎ恼卤硪灿兄庙斘恼碌臄?shù)據(jù)),那么你先在這邊取置頂文章,然后再按之前最后一條文章的添加時(shí)間來(lái)分頁(yè),當(dāng)然增加過(guò)濾條件非置頂文章。這樣性能會(huì)快很多,尤其是有對(duì)“添加時(shí)間”欄位做了索引。
為啥要用sdk呢?寫(xiě)個(gè)簡(jiǎn)單的curl請(qǐng)求不好么?
通過(guò)分析換了一種方法解決
利用BootstrapTable這個(gè)onClickRow事件函數(shù) 然后在單獨(dú)調(diào)用google map的api
產(chǎn)生點(diǎn)擊循環(huán)列表在map中展現(xiàn)圖片信息
修復(fù)bug $element[0].addEventListener('click',fm);
function BootstrapTable() {
$.ajax({
"type": "get",
"url": imgJson,
"async": false,
"success": function (data) {
window.res = data.data;
//console.log(data.data);
$('#table').bootstrapTable({
data: data.data,
pagination: true,
searchAlign: "right",
buttonsAlign: "left",
showRefresh: true,
searchOnEnterKey: false,
singleSelect: true,
maintainSelected: false,
search: true,
pageSize: 10,
sortable: false,
paginationLoop: true,
toolbar: '#toolbar', // 工具欄ID
toolbarAlign: 'right', // 工具欄對(duì)齊方式
onClickRow: function (item, $element) {
var arr = {};
arr.Latitude = parseFloat(item.Latitude);
arr.Longitude = parseFloat(item.Longitude);
var latLng = new google.maps.LatLng(arr.Latitude, arr.Longitude);
var fm = mapLine.markerClickFunction(item, latLng);
$element[0].addEventListener('click',fm);
},
columns: [
{
field: 'id',
align: 'center',
title: 'id'
},
{
field: 'photo_title',
align: 'center',
title: 'photo_title'
},
{
field: 'photo_time',
align: 'center',
title: 'photo_time'
}
]
});
}
});
};建議對(duì)于這種嵌有HTML的內(nèi)容 通過(guò)使用模板文件進(jìn)行存儲(chǔ),使用占位符的形式來(lái)對(duì)內(nèi)容進(jìn)行替換。
<html>
<head>
{$phpmailer_css_style}
</head>
<body>
<div class="edm-layout">
<img src="{$host_url}images/logo.png">
<div class="line"></div>
</div>
<div class="edm-content">
<div class="edm-hithere">
嗨,{$user_name} <br>XXX {$prod_total}XXXXX<br>XXXXXX{$this_total} XXX
</div>
<div class="edm-products">
{$row_distinct}
</div>
</div>
</div>
</body>
</html>
<?php
$php_version = version_compare(phpversion(), '7');
/**
* 必須php 7
*/
if ($php_version === -1) {
die('Need a high version of php 7.1.*');
}
/**
* EmailTemplate
*/
class EmailTemplate
{
/**
* @param string $template_path 模板路徑
* @param array $args 變量組
* @return string 渲染后的
* @throws Exception
*/
public static function render(string $template_path, array $args): string
{
if (!file_exists($template_path)) {
throw new Exception("Not found template fiel.", 1);
}
$template = file_get_contents($template_path);
$result = preg_replace_callback('!\{\$(\w+)\}!', function ($matches) use ($args) {
$arg = $matches[1];
return $args[$arg] ?? '';
}, $template);
return $result;
}
}
$body = EmailTemplate::render(
'email.template',
[
'host_url' => 'http://xxx',
'phpmailer_css_style' => 'empty',
'user_name' => '張三',
'prod_total' => '100.00',
'this_total' => '10000.00',
'row_distinct' => 'empty',
]
);
這樣就實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的模板替換。
為什么數(shù)據(jù)庫(kù)查詢返回結(jié)果一定要符合你的格式要求呢?
這這個(gè)本身就是在你代碼業(yè)務(wù)層需要實(shí)現(xiàn)的功能??!
bind對(duì)象進(jìn)去就行了setInterval(test.all.bind(test),1000);
直接round不可能出現(xiàn)這個(gè)吧。。只有計(jì)算才會(huì)出現(xiàn)這種,然后你里面2個(gè)點(diǎn)的是什么
redis 做緩沖。第二種更合適,簡(jiǎn)單點(diǎn)設(shè)計(jì)的話商品ID,用戶ID,商品數(shù)量就夠了。
首先接口請(qǐng)求過(guò)來(lái),拿到用戶ID,這是前提。
再根據(jù)用戶ID去購(gòu)物車表內(nèi)查找對(duì)應(yīng)的所有商品ID。
最后去商品表根據(jù)商品ID列表找到對(duì)應(yīng)商品。
其實(shí)和你自己形容的差不多步驟。
SELECT * FROM user_cart as c
LEFT JOIN product AS b ON c.prod_id = b.prod_id
WHERE c.id = '{$_SESSION["user-id"]}'北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。