知識分享

Middleware 會在一個頁面或一群頁面render之前執行的程式。

例如驗證使用者權限之類的功能,就會以middleware的方式來處理。

middleware會接收到一個context的變數作為第一個參數,關於context 裡面有key,可參考這裡

middleware被執行的順序如下:

  1. nuxt.config.js
  2. 符合的 layout
  3. 符合的 page

 

以下是參考範例
先在middleware裡面建立要執行的程式,檔名會自動可成為被呼叫的名稱

middleware/stats.js

import axios from 'axios'

export default function ({ route }) {
  return axios.post('http://my-stats-api.com', {
    url: route.fullPath
  })
}

nuxt.config.js

module.
更多

說明文件:https://nuxtjs.org/guide/routing

基本概念:只要在 pages 目錄及子目錄中,建立相關的index.vue檔,就會自動生成對應的route

例如

pages/
--| user/
-----| index.vue
-----| one.vue
--| index.vue

就可以產生  三個 route,分別是  "/" ,  "/user",  "/user/one"

 

動態路由

要建立動態路由也滿簡單的,就是在vue檔,加上 下底線 "_" 的前綴 ,如

pages/
--| _slug/
-----| comments.vue
-----| index.vue
--| users/
-----| _id.vue
--| index.vue

以上範例中,有三個動態路由,分別是  "/{slug}/" , "/{slug}/comments" 與 "users/{id}"

 

說明文件:https://nuxtjs.org/guide/configuration

nuxt.config.js 的內容大概長這樣

module.exports = {
  /*
  ** Headers of the page
  */
  head: {
    title: 'my-project',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { hid: 'description', name: 'description', content: 'Nuxt.js project' }
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
    ]
  },
  /*
  ** Customize the progress bar color
  */
  loading: { color: '#3B8070
更多

 

雖然D8也現世很久了,但最近才把一個老舊的網站從 D6 升級到 D7,除了一些模組衝突問題之外,升級大致上還算順利。

一個全心安裝的Boost,一切運作正常,

但只要是已登入的使用者,admin_menu會消失,然後從瀏覽器的開發者工具發現是某一段js找不到,原本想說就算了,頂多不要用...

然後接著就發現node/*/edit的表單無法更新@@,跟著就注意到,其實是所有的表單都無法提交(不過實際上應該是有提交成功,但我們只看得到舊畫面)
所以還是得要解決問題。

後來找到有人碰到類似的狀況,原來是Apache版本比較老舊,新版boost(此時安裝的版本是7.x-1.2)產出的.htaccess 是造成問題的主因

得要用boost 7.x-1.0 所產生的.htaccess 
備份如下,以供有需求的人使用,附帶一題,我沒有照文章中所說的,模組也改為 bootstrap 7.x-1.0 ,而是依舊用較新的版本,

更多
  1. 當同一個Server 底下有 多個 Index 的時候,如果在某個 Index 的 Index status 檢視頁中,按了 Clear all indexed data ,實際上會把同一個Server底下的所有 Index 都砍掉,
    舉例來說,假設有兩個Index,分別為 A 與 B,當你在 A 這個 index 按了 "Clear all indexed data",會連 B 的也一起被砍掉,但此時去 B 的狀態檢視頁中,Indexed data 還是滿的。
  2. Queue all items for reindexing 這個功能,雖然不會把另外一個 index 的資料都砍掉,但會產生另一個問題,他會建立重複的資料。
  3. 所以解決辦法是,到每個  index  去 "clear all indexed data",然後在一個一個 "index now"

以上的版本為 7.x-1.20

如果曾經瀏覽過某個網站, chrome就會把他列入搜尋建議(網址列)中,

有時候某些網站的網址剛好佔據了最前方,總是讓人老是不小心按錯,要移除的方法如下:

  1. 在網址列打 chrome://history 後按 Enter
  2. 然後會跳到我們曾經瀏覽過的網站(歷史紀錄)
  3. 在頁面上方,有個搜尋框,可以在這邊輸入你要找的網址
  4. 勾選搜尋結果,然後按下上方的 "刪除"
  5. 之後他就不會再出現在搜尋建議中了,除非...你又進入了那個網站

 

後來發現還有第二個方法:

直接在建議搜尋那邊,選擇要刪除的網址,然後按下 Shift+Del 即可

官方文件  https://docs.docker.com/engine/reference/commandline/cli/

本篇僅列出(翻譯)我有用到的部分

 

主要指令: docker
參數 說明
--config string client 端的config 檔案位置 ,預設:/root/.docker
-D,--debug 啟用debug模式
--help 列出參數說明
-H, --host value Daemon socket(s) to connect to (default [])
更多

Docker學習過程,一定要的餐考文章

官方文件 https://docs.docker.com/engine/userguide/

前輩寫的中文筆記  https://peihsinsu.gitbooks.io/docker-note-book/content/cli-basics.html

在webform的(node)電子郵件設定中,明明就已經設定了一個email,但收到信的時候,卻還是會看到 網站系統(System)的電子郵件

查了一下才發現,原來在Node 上設定的Email,實際上會以 Reply To 的表頭送出,也就是當收到信件後要回信,會回給這邊所設定的mail

如果要避免出現系統的Email,得要到 admin/config/webform 去設定預設的電子郵件

 

詳細可看這篇:

http://drupal.stackexchange.com/questions/203028/how-to-change-webform-d...

套件:npm-windows-upgrade

https://github.com/felixrieseberg/npm-windows-upgrade

  1. 要安裝這個,首先要使用有管理權限的 powershell
  2. 輸入下面的指令
    Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
  3. 然後安裝 npm-windows-upgrade
    npm install --global --production npm-windows-upgrade
  4. 接著升級 npm
    npm npm-windows-upgrade
  5. 上面的指令也可以手動輸入,假設nodejs不是透過installer安裝的話,可以指定一下npm的所在位置
    npm-windows-upgrade --npm-path "C:\nodejs"

其他可用參數:

-h, --help Output usage information
-V, --

更多