diff --git a/404.html b/404.html new file mode 100644 index 0000000..ed0401e --- /dev/null +++ b/404.html @@ -0,0 +1,17 @@ + + + + + + My Blog + + + + + + + +

404

Looks like we've got some broken links.
Take me home.
+ + + diff --git a/assets/css/0.styles.2b478e90.css b/assets/css/0.styles.2b478e90.css new file mode 100644 index 0000000..02509ad --- /dev/null +++ b/assets/css/0.styles.2b478e90.css @@ -0,0 +1 @@ +.home{padding:3.6rem 2rem 0;max-width:960px;margin:0 auto}.home .hero{text-align:center}.home .hero img{max-height:280px;display:block;margin:3rem auto 1.5rem}.home .hero h1{font-size:3rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.8rem auto}.home .hero .description{max-width:35rem;font-size:1.6rem;line-height:1.3;color:#6a8bad}.home .hero .action-button{display:inline-block;font-size:1.2rem;color:#fff;background-color:#3eaf7c;padding:.8rem 1.6rem;border-radius:4px;transition:background-color .1s ease;box-sizing:border-box;border-bottom:1px solid #389d70}.home .hero .action-button:hover{background-color:#4abf8a}.home .features{border-top:1px solid #eaecef;padding:1.2rem 0;margin-top:2.5rem;display:flex;flex-wrap:wrap;align-items:flex-start;align-content:stretch;justify-content:space-between}.home .feature{flex-grow:1;flex-basis:30%;max-width:30%}.home .feature h2{font-size:1.4rem;font-weight:500;border-bottom:none;padding-bottom:0;color:#3a5169}.home .feature p{color:#4e6e8e}.home .footer{padding:2.5rem;border-top:1px solid #eaecef;text-align:center;color:#4e6e8e}@media (max-width:719px){.home .features{flex-direction:column}.home .feature{max-width:100%;padding:0 2.5rem}}@media (max-width:419px){.home{padding-left:1.5rem;padding-right:1.5rem}.home .hero img{max-height:210px;margin:2rem auto 1.2rem}.home .hero h1{font-size:2rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.2rem auto}.home .hero .description{font-size:1.2rem}.home .hero .action-button{font-size:1rem;padding:.6rem 1.2rem}.home .feature h2{font-size:1.25rem}}.badge[data-v-7bc6d4e8]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff;margin-right:5px;background-color:#42b983}.badge.middle[data-v-7bc6d4e8]{vertical-align:middle}.badge.top[data-v-7bc6d4e8]{vertical-align:top}.badge.green[data-v-7bc6d4e8],.badge.tip[data-v-7bc6d4e8]{background-color:#42b983}.badge.error[data-v-7bc6d4e8]{background-color:#da5961}.badge.warn[data-v-7bc6d4e8],.badge.warning[data-v-7bc6d4e8],.badge.yellow[data-v-7bc6d4e8]{background-color:#e7c000}.search-box{display:inline-block;position:relative;margin-right:1rem}.search-box input{cursor:text;width:10rem;color:#4e6e8e;display:inline-block;border:1px solid #cfd4db;border-radius:2rem;font-size:.9rem;line-height:2rem;padding:0 .5rem 0 2rem;outline:none;transition:all .2s ease;background:#fff url(/blog/assets/img/search.83621669.svg) .6rem .5rem no-repeat;background-size:1rem}.search-box input:focus{cursor:auto;border-color:#3eaf7c}.search-box .suggestions{background:#fff;width:20rem;position:absolute;top:1.5rem;border:1px solid #cfd4db;border-radius:6px;padding:.4rem;list-style-type:none}.search-box .suggestions.align-right{right:0}.search-box .suggestion{line-height:1.4;padding:.4rem .6rem;border-radius:4px;cursor:pointer}.search-box .suggestion a{white-space:normal;color:#5d82a6}.search-box .suggestion a .page-title{font-weight:600}.search-box .suggestion a .header{font-size:.9em;margin-left:.25em}.search-box .suggestion.focused{background-color:#f3f4f5}.search-box .suggestion.focused a{color:#3eaf7c}@media (max-width:959px){.search-box input{cursor:pointer;width:0;border-color:transparent;position:relative}.search-box input:focus{cursor:text;left:0;width:10rem}}@media (max-width:959px) and (min-width:719px){.search-box .suggestions{left:0}}@media (max-width:719px){.search-box{margin-right:0}.search-box input{left:1rem}.search-box .suggestions{right:0}}@media (max-width:419px){.search-box .suggestions{width:calc(100vw - 4rem)}.search-box input:focus{width:8rem}}.dropdown-enter,.dropdown-leave-to{height:0!important}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper .dropdown-title{display:block}.dropdown-wrapper .dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.dropdown-wrapper .nav-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .nav-dropdown .dropdown-item h4{margin:.45rem 0 0;border-top:1px solid #eee;padding:.45rem 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper{padding:0;list-style:none}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper .dropdown-subitem{font-size:.9em}.dropdown-wrapper .nav-dropdown .dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.dropdown-wrapper .nav-dropdown .dropdown-item a:hover{color:#3eaf7c}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid #3eaf7c;border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.dropdown-wrapper .nav-dropdown .dropdown-item:first-child h4{margin-top:0;padding-top:0;border-top:0}@media (max-width:719px){.dropdown-wrapper.open .dropdown-title{margin-bottom:.5rem}.dropdown-wrapper .nav-dropdown{transition:height .1s ease-out;overflow:hidden}.dropdown-wrapper .nav-dropdown .dropdown-item h4{border-top:0;margin-top:0;padding-top:0}.dropdown-wrapper .nav-dropdown .dropdown-item>a,.dropdown-wrapper .nav-dropdown .dropdown-item h4{font-size:15px;line-height:2rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:719px){.dropdown-wrapper{height:1.8rem}.dropdown-wrapper:hover .nav-dropdown{display:block!important}.dropdown-wrapper .dropdown-title .arrow{border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #ccc;border-bottom:0}.dropdown-wrapper .nav-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:#fff;padding:.6rem 0;border:1px solid #ddd;border-bottom-color:#ccc;text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}}.nav-links{display:inline-block}.nav-links a{line-height:1.4rem;color:inherit}.nav-links a.router-link-active,.nav-links a:hover{color:#3eaf7c}.nav-links .nav-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:2rem}.nav-links .nav-item:first-child{margin-left:0}.nav-links .repo-link{margin-left:1.5rem}@media (max-width:719px){.nav-links .nav-item,.nav-links .repo-link{margin-left:0}}@media (min-width:719px){.nav-links a.router-link-active,.nav-links a:hover{color:#2c3e50}.nav-item>a:not(.external).router-link-active,.nav-item>a:not(.external):hover{margin-bottom:-2px;border-bottom:2px solid #46bd87}}.navbar{padding:.7rem 1.5rem;line-height:2.2rem;position:relative}.navbar a,.navbar img,.navbar span{display:inline-block}.navbar .logo{height:2.2rem;min-width:2.2rem;margin-right:.8rem;vertical-align:top}.navbar .site-name{font-size:1.3rem;font-weight:600;color:#2c3e50;position:relative}.navbar .links{padding-left:1.5rem;box-sizing:border-box;background-color:#fff;white-space:nowrap;font-size:.9rem;position:absolute;right:1.5rem;top:.7rem;display:flex}.navbar .links .search-box{flex:0 0 auto;vertical-align:top}.navbar .links .nav-links{flex:1}@media (max-width:719px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .links{padding-left:1.5rem}}.page-edit,.page-nav{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-edit,.page-nav{padding:2rem}}@media (max-width:419px){.page-edit,.page-nav{padding:1.5rem}}.page{padding-bottom:2rem}.page-edit{padding-top:1rem;padding-bottom:1rem;overflow:auto}.page-edit .edit-link{display:inline-block}.page-edit .edit-link a{color:#4e6e8e;margin-right:.25rem}.page-edit .last-updated{float:right;font-size:.9em}.page-edit .last-updated .prefix{font-weight:500;color:#4e6e8e}.page-edit .last-updated .time{font-weight:400;color:#aaa}.page-nav{padding-top:1rem;padding-bottom:0}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid #eaecef;padding-top:1rem;overflow:auto}.page-nav .next{float:right}@media (max-width:719px){.page-edit .edit-link{margin-bottom:.5rem}.page-edit .last-updated{font-size:.8em;float:none;text-align:left}}.sidebar-button{display:none;width:1.25rem;height:1.25rem;position:absolute;padding:.6rem;top:.6rem;left:1rem}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media (max-width:719px){.sidebar-button{display:block}}.sidebar-group:not(.first){margin-top:1em}.sidebar-group .sidebar-group{padding-left:.5em}.sidebar-group:not(.collapsable) .sidebar-heading{cursor:auto;color:inherit}.sidebar-heading{color:#999;transition:color .15s ease;cursor:pointer;font-size:1.1em;font-weight:700;padding:0 1.5rem;margin-top:0;margin-bottom:.5rem}.sidebar-heading.open,.sidebar-heading:hover{color:inherit}.sidebar-heading .arrow{position:relative;top:-.12em;left:.5em}.sidebar-heading:.open .arrow{top:-.18em}.sidebar-group-items{transition:height .1s ease-out;overflow:hidden}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .nav-links{display:none;border-bottom:1px solid #eaecef;padding:.5rem 0 .75rem 0}.sidebar .nav-links a{font-weight:600}.sidebar .nav-links .nav-item,.sidebar .nav-links .repo-link{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar .sidebar-links{padding:1.5rem 0}@media (max-width:719px){.sidebar .nav-links{display:block}.sidebar .nav-links .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar .sidebar-links{padding:1rem 0}}.sw-update-popup{position:fixed;right:1em;bottom:1em;padding:1em;border:1px solid #3eaf7c;border-radius:3px;background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.5);text-align:center}.sw-update-popup button{margin-top:.5em;padding:.25em 2em}.sw-update-popup-enter-active,.sw-update-popup-leave-active{transition:opacity .3s,transform .3s}.sw-update-popup-enter,.sw-update-popup-leave-to{opacity:0;transform:translateY(50%) scale(.5)}code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}#nprogress{pointer-events:none}#nprogress .bar{background:#3eaf7c;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #3eaf7c,0 0 5px #3eaf7c;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#3eaf7c;border-left-color:#3eaf7c;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.content code{color:#476582;padding:.25rem .5rem;margin:0;font-size:.85em;background-color:rgba(27,31,35,.05);border-radius:3px}.content pre,.content pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#282c34;border-radius:6px;overflow:auto}.content pre[class*=language-] code,.content pre code{color:#fff;padding:0;background-color:transparent;border-radius:0}div[class*=language-]{position:relative;background-color:#282c34;border-radius:6px}div[class*=language-] .highlight-lines{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding-top:1.3rem;position:absolute;top:0;left:0;width:100%;line-height:1.4}div[class*=language-] .highlight-lines .highlighted{background-color:rgba(0,0,0,.66)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:transparent;position:relative;z-index:1}div[class*=language-]:before{position:absolute;z-index:3;top:.8em;right:1em;font-size:.75rem;color:hsla(0,0%,100%,.4)}div[class*=language-]:not(.line-numbers-mode) .line-numbers-wrapper{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlighted{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{content:" ";position:absolute;z-index:3;left:0;top:0;display:block;width:3.5rem;height:100%;background-color:rgba(0,0,0,.66)}div[class*=language-].line-numbers-mode pre{padding-left:4.5rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:3.5rem;text-align:center;color:hsla(0,0%,100%,.3);padding:1.25rem 0;line-height:1.4}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number,div[class*=language-].line-numbers-mode .line-numbers-wrapper br{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;font-size:.85em}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;z-index:2;top:0;left:0;width:3.5rem;height:100%;border-radius:6px 0 0 6px;border-right:1px solid rgba(0,0,0,.66);background-color:#282c34}div[class~=language-js]:before{content:"js"}div[class~=language-ts]:before{content:"ts"}div[class~=language-html]:before{content:"html"}div[class~=language-md]:before{content:"md"}div[class~=language-vue]:before{content:"vue"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"stylus"}div[class~=language-go]:before{content:"go"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-sh]:before{content:"sh"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-py]:before{content:"py"}div[class~=language-javascript]:before{content:"js"}div[class~=language-typescript]:before{content:"ts"}div[class~=language-markup]:before{content:"html"}div[class~=language-markdown]:before{content:"md"}div[class~=language-json]:before{content:"json"}div[class~=language-ruby]:before{content:"rb"}div[class~=language-python]:before{content:"py"}div[class~=language-bash]:before{content:"sh"}.custom-block .custom-block-title{font-weight:600;margin-bottom:-.4rem}.custom-block.danger,.custom-block.tip,.custom-block.warning{padding:.1rem 1.5rem;border-left-width:.5rem;border-left-style:solid;margin:1rem 0}.custom-block.tip{background-color:#f3f5f7;border-color:#42b983}.custom-block.warning{background-color:rgba(255,229,100,.3);border-color:#e7c000;color:#6b5900}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.warning a{color:#2c3e50}.custom-block.danger{background-color:#ffe6e6;border-color:#c00;color:#4d0000}.custom-block.danger .custom-block-title{color:#900}.custom-block.danger a{color:#2c3e50}.arrow{display:inline-block;width:0;height:0}.arrow.up{border-bottom:6px solid #ccc}.arrow.down,.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent}.arrow.down{border-top:6px solid #ccc}.arrow.right{border-left:6px solid #ccc}.arrow.left,.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent}.arrow.left{border-right:6px solid #ccc}.content:not(.custom){max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.content:not(.custom){padding:2rem}}@media (max-width:419px){.content:not(.custom){padding:1.5rem}}.table-of-contents .badge{vertical-align:middle}body,html{padding:0;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;color:#2c3e50}.page{padding-left:20rem}.navbar{z-index:20;right:0;height:3.6rem;background-color:#fff;box-sizing:border-box;border-bottom:1px solid #eaecef}.navbar,.sidebar-mask{position:fixed;top:0;left:0}.sidebar-mask{z-index:9;width:100vw;height:100vh;display:none}.sidebar{font-size:15px;background-color:#fff;width:20rem;position:fixed;z-index:10;margin:0;top:3.6rem;left:0;bottom:0;box-sizing:border-box;border-right:1px solid #eaecef;overflow-y:auto}.content:not(.custom)>:first-child{margin-top:3.6rem}.content:not(.custom) a:hover{text-decoration:underline}.content:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #ddd;border-radius:4px}.content:not(.custom) img{max-width:100%}.content.custom{padding:0;margin:0}.content.custom img{max-width:100%}a{font-weight:500;text-decoration:none}a,p a code{color:#3eaf7c}p a code{font-weight:400}kbd{background:#eee;border:.15rem solid #ddd;border-bottom:.25rem solid #ddd;border-radius:.15rem;padding:0 .15em}blockquote{font-size:1.2rem;color:#999;border-left:.25rem solid #dfe2e5;margin-left:0;padding-left:1rem}ol,ul{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25}.content:not(.custom)>h1,.content:not(.custom)>h2,.content:not(.custom)>h3,.content:not(.custom)>h4,.content:not(.custom)>h5,.content:not(.custom)>h6{margin-top:-3.1rem;padding-top:4.6rem;margin-bottom:0}.content:not(.custom)>h1:first-child,.content:not(.custom)>h2:first-child,.content:not(.custom)>h3:first-child,.content:not(.custom)>h4:first-child,.content:not(.custom)>h5:first-child,.content:not(.custom)>h6:first-child{margin-top:-1.5rem;margin-bottom:1rem}.content:not(.custom)>h1:first-child+.custom-block,.content:not(.custom)>h1:first-child+p,.content:not(.custom)>h1:first-child+pre,.content:not(.custom)>h2:first-child+.custom-block,.content:not(.custom)>h2:first-child+p,.content:not(.custom)>h2:first-child+pre,.content:not(.custom)>h3:first-child+.custom-block,.content:not(.custom)>h3:first-child+p,.content:not(.custom)>h3:first-child+pre,.content:not(.custom)>h4:first-child+.custom-block,.content:not(.custom)>h4:first-child+p,.content:not(.custom)>h4:first-child+pre,.content:not(.custom)>h5:first-child+.custom-block,.content:not(.custom)>h5:first-child+p,.content:not(.custom)>h5:first-child+pre,.content:not(.custom)>h6:first-child+.custom-block,.content:not(.custom)>h6:first-child+p,.content:not(.custom)>h6:first-child+pre{margin-top:2rem}h1:hover .header-anchor,h2:hover .header-anchor,h3:hover .header-anchor,h4:hover .header-anchor,h5:hover .header-anchor,h6:hover .header-anchor{opacity:1}h1{font-size:2.2rem}h2{font-size:1.65rem;padding-bottom:.3rem;border-bottom:1px solid #eaecef}h3{font-size:1.35rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;opacity:0}a.header-anchor:hover{text-decoration:none}.line-number,code,kbd{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,ul{line-height:1.7}hr{border:0;border-top:1px solid #eaecef}table{border-collapse:collapse;margin:1rem 0;display:block;overflow-x:auto}tr{border-top:1px solid #dfe2e5}tr:nth-child(2n){background-color:#f6f8fa}td,th{border:1px solid #dfe2e5;padding:.6em 1em}.custom-layout{padding-top:3.6rem}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .sidebar{top:0}.theme-container.no-navbar .custom-layout{padding-top:0}@media (min-width:720px){.theme-container.no-sidebar .sidebar{display:none}.theme-container.no-sidebar .page{padding-left:0}}@media (max-width:959px){.sidebar{font-size:15px;width:16.4rem}.page{padding-left:16.4rem}}@media (max-width:719px){.sidebar{top:0;padding-top:3.6rem;transform:translateX(-100%);transition:transform .2s ease}.page{padding-left:0}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.no-navbar .sidebar{padding-top:0}}@media (max-width:419px){h1{font-size:1.9rem}.content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}.icon.outbound{color:#aaa;display:inline-block}.sidebar .sidebar-sub-headers{padding-left:1rem;font-size:.95em}a.sidebar-link{font-weight:400;display:inline-block;color:#2c3e50;border-left:.25rem solid transparent;padding:.35rem 1rem .35rem 1.25rem;line-height:1.4;width:100%;box-sizing:border-box}a.sidebar-link:hover{color:#3eaf7c}a.sidebar-link.active{font-weight:600;color:#3eaf7c;border-left-color:#3eaf7c}.sidebar-group a.sidebar-link{padding-left:2rem}.sidebar-sub-headers a.sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-left:none}.sidebar-sub-headers a.sidebar-link.active{font-weight:500} \ No newline at end of file diff --git a/assets/img/search.83621669.svg b/assets/img/search.83621669.svg new file mode 100644 index 0000000..03d8391 --- /dev/null +++ b/assets/img/search.83621669.svg @@ -0,0 +1 @@ + diff --git a/assets/js/10.58982081.js b/assets/js/10.58982081.js new file mode 100644 index 0000000..d7ded81 --- /dev/null +++ b/assets/js/10.58982081.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{172:function(t,e,s){"use strict";s.r(e);var n=s(0),i=Object(n.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"content"},[e("h1",{attrs:{id:"设备管理系统"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#设备管理系统","aria-hidden":"true"}},[this._v("#")]),this._v(" 设备管理系统")])])}],!1,null,null,null);i.options.__file="设备管理系统.md";e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/11.5bcfe1b7.js b/assets/js/11.5bcfe1b7.js new file mode 100644 index 0000000..70f5f02 --- /dev/null +++ b/assets/js/11.5bcfe1b7.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{166:function(n,w,o){}}]); \ No newline at end of file diff --git a/assets/js/2.a33be84c.js b/assets/js/2.a33be84c.js new file mode 100644 index 0000000..e97d2d7 --- /dev/null +++ b/assets/js/2.a33be84c.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{164:function(t,e,n){},165:function(t,e,n){"use strict";var i=n(164);n.n(i).a},167:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,i=e.slots;return t("span",{class:["badge",n.type,n.vertical]},n.text||i().default)}},a=(n(165),n(0)),o=Object(a.a)(i,void 0,void 0,!1,null,"7bc6d4e8",null);o.options.__file="Badge.vue";e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/3.98ec0fe7.js b/assets/js/3.98ec0fe7.js new file mode 100644 index 0000000..feec077 --- /dev/null +++ b/assets/js/3.98ec0fe7.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{168:function(t,e,n){"use strict";n.r(e);var s=n(0),i=Object(s.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"content"},[e("p",[this._v("'# Hello VuePress!'")])])}],!1,null,null,null);i.options.__file="README.md";e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/4.df1b979b.js b/assets/js/4.df1b979b.js new file mode 100644 index 0000000..992931c --- /dev/null +++ b/assets/js/4.df1b979b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{169:function(t,s,i){"use strict";i.r(s);var e=i(0),a=Object(e.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"content"},[s("h1",{attrs:{id:"文章收集"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#文章收集","aria-hidden":"true"}},[this._v("#")]),this._v(" 文章收集")]),this._v(" "),s("div",{staticClass:"tip custom-block"},[s("p",{staticClass:"custom-block-title"},[this._v("说明")]),this._v(" "),s("p",[this._v("收集一些平时看的文章")])])])}],!1,null,null,null);a.options.__file="README.md";s.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/5.feafeb0c.js b/assets/js/5.feafeb0c.js new file mode 100644 index 0000000..b07028c --- /dev/null +++ b/assets/js/5.feafeb0c.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{171:function(t,s,a){"use strict";a.r(s);var r=a(0),e=Object(r.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"content"},[a("h1",{attrs:{id:"centos下搭建fastdfs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#centos下搭建fastdfs","aria-hidden":"true"}},[t._v("#")]),t._v(" Centos下搭建Fastdfs")]),t._v(" "),a("h1",{attrs:{id:"环境准备"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#环境准备","aria-hidden":"true"}},[t._v("#")]),t._v(" 环境准备")]),t._v(" "),a("h2",{attrs:{id:"使用的系统软件"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#使用的系统软件","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#%E4%BD%BF%E7%94%A8%E7%9A%84%E7%B3%BB%E7%BB%9F%E8%BD%AF%E4%BB%B6"}}),t._v("使用的系统软件")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("名称")]),t._v(" "),a("th",[t._v("说明")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[t._v("centos")]),t._v(" "),a("td",[t._v("7.x")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[t._v("libfatscommon")]),t._v(" "),a("td",[t._v("FastDFS 分离出的一些公用函数包")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[t._v("FastDFS")]),t._v(" "),a("td",[t._v("FastDFS 本体")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[t._v("fastdfs-nginx-module")]),t._v(" "),a("td",[t._v("FastDFS 和 nginx 的关联模块")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[t._v("nginx")]),t._v(" "),a("td",[t._v("nginx1.15.4")])])])]),t._v(" "),a("h2",{attrs:{id:"编译环境"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#编译环境","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#%E7%BC%96%E8%AF%91%E7%8E%AF%E5%A2%83"}}),t._v("编译环境")]),t._v(" "),a("div",{staticClass:"language-shell extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y\n")])])]),a("h2",{attrs:{id:"磁盘目录"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#磁盘目录","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#%E7%A3%81%E7%9B%98%E7%9B%AE%E5%BD%95"}}),t._v("磁盘目录")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("说明")]),t._v(" "),a("th",[t._v("位置")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("所有安装包")]),t._v(" "),a("td",[t._v("/usr/local/src")])]),t._v(" "),a("tr",[a("td",[t._v("数据存储位置")]),t._v(" "),a("td",[t._v("/home/dfs/")])])])]),t._v(" "),a("div",{staticClass:"language-shell extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("mkdir /home/dfs #创建数据存储目录\ncd /usr/local/src #切换到安装目录准备下载安装包\n")])])]),a("h2",{attrs:{id:"安装-libfatscommon"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#安装-libfatscommon","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#%E5%AE%89%E8%A3%85libfatscommon"}}),t._v("安装 libfatscommon")]),t._v(" "),a("div",{staticClass:"language-shell extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("git clone https://github.com/happyfish100/libfastcommon.git --depth 1\ncd libfastcommon/\n./make.sh && ./make.sh install #编译安装\n")])])]),a("h2",{attrs:{id:"安装-fastdfs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#安装-fastdfs","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#%E5%AE%89%E8%A3%85fastdfs"}}),t._v("安装 FastDFS")]),t._v(" "),a("div",{staticClass:"language-shell extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("cd ../ #返回上一级目录\ngit clone https://github.com/happyfish100/fastdfs.git --depth 1\ncd fastdfs/\n./make.sh && ./make.sh install #编译安装\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"配置文件准备"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#配置文件准备","aria-hidden":"true"}},[t._v("#")]),t._v(" 配置文件准备")]),t._v(" "),a("div",{staticClass:"language-shell extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf\ncp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf\ncp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #客户端文件,测试用\ncp /usr/local/src/fastdfs/conf/http.conf /etc/fdfs/ #供nginx访问使用\ncp /usr/local/src/fastdfs/conf/mime.types /etc/fdfs/ #供nginx访问使用\n")])])]),a("h2",{attrs:{id:"安装-fastdfs-nginx-module"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#安装-fastdfs-nginx-module","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#%E5%AE%89%E8%A3%85fastdfs-nginx-module"}}),t._v("安装 fastdfs-nginx-module")]),t._v(" "),a("div",{staticClass:"language-shell extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("cd ../ #返回上一级目录\ngit clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1\ncp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs\n")])])]),a("h2",{attrs:{id:"安装-nginx"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#安装-nginx","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#%E5%AE%89%E8%A3%85nginx"}}),t._v("安装 nginx")]),t._v(" "),a("div",{staticClass:"language-shell extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("wget http://nginx.org/download/nginx-1.15.4.tar.gz #下载nginx压缩包\ntar -zxvf nginx-1.15.4.tar.gz #解压\ncd nginx-1.15.4/\n#添加fastdfs-nginx-module模块\n./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/ \nmake && make install #编译安装\n")])])]),a("h1",{attrs:{id:"单机部署"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#单机部署","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#%E5%8D%95%E6%9C%BA%E9%83%A8%E7%BD%B2"}}),t._v("单机部署")]),t._v(" "),a("h2",{attrs:{id:"tracker-配置"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tracker-配置","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#tracker%E9%85%8D%E7%BD%AE"}}),t._v("tracker 配置")]),t._v(" "),a("div",{staticClass:"language-vim extra-class"},[a("pre",{pre:!0,attrs:{class:"language-vim"}},[a("code",[t._v("#服务器ip为 "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("192.168")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("52.1")]),t._v("\n#建议用ftp下载下来这些文件 本地修改\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("vim")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("etc"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("fdfs"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("tracker"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("conf")]),t._v("\n#需要修改的内容如下\nport"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("22122")]),t._v(" # tracker服务器端口(默认"),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("22122")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("一般不修改)\nbase_path"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("home"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("dfs # 存储日志和数据的根目录\n")])])]),a("h2",{attrs:{id:"storage-配置"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#storage-配置","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#storage%E9%85%8D%E7%BD%AE"}}),t._v("storage 配置")]),t._v(" "),a("div",{staticClass:"language-vim extra-class"},[a("pre",{pre:!0,attrs:{class:"language-vim"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("vim")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("etc"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("fdfs"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("storage"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("conf")]),t._v("\n#需要修改的内容如下\nport"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("23000")]),t._v(" # storage服务端口(默认"),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("23000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("一般不修改)\nbase_path"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("home"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("dfs # 数据和日志文件存储根目录\nstore_path0"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("home"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("dfs # 第一个存储目录\ntracker_server"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("192.168")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("52.1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("22122")]),t._v(" # tracker服务器IP和端口\nhttp"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),t._v("server_port"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8888")]),t._v(" # http访问文件的端口"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("默认"),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8888")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("看情况修改"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("和nginx中保持一致"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h2",{attrs:{id:"client-测试"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#client-测试","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#client%E6%B5%8B%E8%AF%95"}}),t._v("client 测试")]),t._v(" "),a("div",{staticClass:"language-vim extra-class"},[a("pre",{pre:!0,attrs:{class:"language-vim"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("vim")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("etc"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("fdfs"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("client"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("conf")]),t._v("\n#需要修改的内容如下\nbase_path"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("home"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("dfs\ntracker_server"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("192.168")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("52.1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("22122")]),t._v(" #tracker服务器IP和端口\n#保存后测试"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("返回ID表示成功 如:group1"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("M00"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("00")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("00")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("xx"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),t._v("tar"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),t._v("gz\nfdfs_upload_file "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("etc"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("fdfs"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("client"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("conf")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("usr"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("local"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("src"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("nginx"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1.15")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),t._v("tar"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),t._v("gz\n")])])]),a("div",{staticClass:"danger custom-block"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("要启动tracker服务和storage服务后才能测试")])]),t._v(" "),a("h2",{attrs:{id:"配置-nginx-访问"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#配置-nginx-访问","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#%E9%85%8D%E7%BD%AEnginx%E8%AE%BF%E9%97%AE"}}),t._v("配置 nginx 访问")]),t._v(" "),a("div",{staticClass:"language-vim extra-class"},[a("pre",{pre:!0,attrs:{class:"language-vim"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("vim")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("etc"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("fdfs"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("mod_fastdfs"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("conf")]),t._v("\n#需要修改的内容如下\ntracker_server"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("192.168")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("52.1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("22122")]),t._v(" #tracker服务器IP和端口\nurl_have_group_name"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("true\nstore_path0"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("home"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("dfs\n")])])]),a("div",{staticClass:"language-nginx extra-class"},[a("pre",{pre:!0,attrs:{class:"language-nginx"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#配置nginx.config")]),t._v("\nvim "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("usr"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("local"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("nginx"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("conf"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("nginx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("conf\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#添加如下配置")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("server")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("listen")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8888")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("## 该端口为storage.conf中的http.server_port相同")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("server_name")]),t._v(" localhost"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("location")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("~")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("group"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("9")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n ngx_fastdfs_module"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("error_page")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("500")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("502")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("503")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("504")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("html"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("location")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("html "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("root")]),t._v(" html"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#测试下载,用外部浏览器访问刚才已传过的nginx安装包,引用返回的ID")]),t._v("\nhttp://192.168.52.1:8888/group1/M00/00/00/wKgAQ1pysxmAaqhAAA76tz-dVgg.tar.gz\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#弹出下载单机部署全部跑通")]),t._v("\n")])])]),a("h1",{attrs:{id:"分布式部署"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#分布式部署","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD%B2"}}),t._v("分布式部署")]),t._v(" "),a("h2",{attrs:{id:"tracker-配置-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tracker-配置-2","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#tracker%E9%85%8D%E7%BD%AE-1"}}),t._v("tracker 配置")]),t._v(" "),a("div",{staticClass:"language-vim extra-class"},[a("pre",{pre:!0,attrs:{class:"language-vim"}},[a("code",[t._v("#服务器ip为 "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("192.168")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("52.2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("192.168")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("52.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("192.168")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("52.4")]),t._v("\n#我建议用ftp下载下来这些文件 本地修改\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("vim")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("etc"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("fdfs"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("tracker"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("conf")]),t._v("\n#需要修改的内容如下\nport"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("22122")]),t._v(" # tracker服务器端口(默认"),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("22122")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("一般不修改)\nbase_path"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("home"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("dfs # 存储日志和数据的根目录\n")])])]),a("h2",{attrs:{id:"storage-配置-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#storage-配置-2","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#storage%E9%85%8D%E7%BD%AE-1"}}),t._v("storage 配置")]),t._v(" "),a("div",{staticClass:"language-vim extra-class"},[a("pre",{pre:!0,attrs:{class:"language-vim"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("vim")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("etc"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("fdfs"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("storage"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("conf")]),t._v("\n#需要修改的内容如下\nport"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("23000")]),t._v(" # storage服务端口(默认"),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("23000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("一般不修改)\nbase_path"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("home"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("dfs # 数据和日志文件存储根目录\nstore_path0"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("home"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("dfs # 第一个存储目录\ntracker_server"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("192.168")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("52.2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("22122")]),t._v(" # 服务器"),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\ntracker_server"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("192.168")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("52.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("22122")]),t._v(" # 服务器"),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\ntracker_server"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("192.168")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("52.4")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("22122")]),t._v(" # 服务器"),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v("\nhttp"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),t._v("server_port"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8888")]),t._v(" # http访问文件的端口"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("默认"),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8888")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("看情况修改"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("和nginx中保持一致"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h2",{attrs:{id:"client-测试-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#client-测试-2","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#client%E6%B5%8B%E8%AF%95-1"}}),t._v("client 测试")]),t._v(" "),a("div",{staticClass:"language-vim extra-class"},[a("pre",{pre:!0,attrs:{class:"language-vim"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("vim")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("etc"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("fdfs"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("client"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("conf")]),t._v("\n#需要修改的内容如下\nbase_path"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("home"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("moe"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("dfs\ntracker_server"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("192.168")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("52.2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("22122")]),t._v(" # 服务器"),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\ntracker_server"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("192.168")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("52.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("22122")]),t._v(" # 服务器"),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\ntracker_server"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("192.168")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("52.4")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("22122")]),t._v(" # 服务器"),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v("\n#保存后测试"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("返回ID表示成功 如:group1"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("M00"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("00")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("00")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("xx"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),t._v("tar"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),t._v("gz\nfdfs_upload_file "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("etc"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("fdfs"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("client"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("conf")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("usr"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("local"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("src"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("nginx"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1.15")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),t._v("tar"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),t._v("gz\n")])])]),a("h2",{attrs:{id:"配置-nginx-访问-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#配置-nginx-访问-2","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#%E9%85%8D%E7%BD%AEnginx%E8%AE%BF%E9%97%AE-1"}}),t._v("配置 nginx 访问")]),t._v(" "),a("div",{staticClass:"language-vim extra-class"},[a("pre",{pre:!0,attrs:{class:"language-vim"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("vim")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("etc"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("fdfs"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("mod_fastdfs"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("conf")]),t._v("\n#需要修改的内容如下\ntracker_server"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("192.168")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("52.2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("22122")]),t._v(" # 服务器"),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\ntracker_server"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("192.168")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("52.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("22122")]),t._v(" # 服务器"),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\ntracker_server"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("192.168")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("52.4")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("22122")]),t._v(" # 服务器"),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v("\nurl_have_group_name"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("true\nstore_path0"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("home"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("dfs\n")])])]),a("div",{staticClass:"language-nginx extra-class"},[a("pre",{pre:!0,attrs:{class:"language-nginx"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#配置nginx.config")]),t._v("\nvim "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("usr"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("local"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("nginx"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("conf"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("nginx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("conf\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#添加如下配置")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("server")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("listen")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8888")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("## 该端口为storage.conf中的http.server_port相同")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("server_name")]),t._v(" localhost"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("location")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("~")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("group"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("9")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n ngx_fastdfs_module"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("error_page")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("500")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("502")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("503")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("504")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("html"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("location")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("html "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("root")]),t._v(" html"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h1",{attrs:{id:"启动"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#启动","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#%E5%90%AF%E5%8A%A8"}}),t._v("启动")]),t._v(" "),a("h2",{attrs:{id:"防火墙"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#防火墙","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#%E9%98%B2%E7%81%AB%E5%A2%99"}}),t._v("防火墙")]),t._v(" "),a("p",[t._v("#不关闭防火墙的话无法使用\nsystemctl stop firewalld.service #关闭\nsystemctl restart firewalld.service #重启")]),t._v(" "),a("h2",{attrs:{id:"tracker"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tracker","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#tracker"}}),t._v("tracker")]),t._v(" "),a("p",[t._v("``shell\n/etc/init.d/fdfs_trackerd start #启动tracker服务\n/etc/init.d/fdfs_trackerd restart #重启动tracker服务\n/etc/init.d/fdfs_trackerd stop #停止tracker服务\nchkconfig fdfs_trackerd on #自启动tracker服务")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("\n## [](#storage)storage\n\n```shell\n/etc/init.d/fdfs_storaged start #启动storage服务\n/etc/init.d/fdfs_storaged restart #重动storage服务\n/etc/init.d/fdfs_storaged stop #停止动storage服务\nchkconfig fdfs_storaged on #自启动storage服务\n")])])]),a("h2",{attrs:{id:"nginx"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#nginx","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#nginx"}}),t._v("nginx")]),t._v(" "),a("div",{staticClass:"language-shell extra-class"},[a("pre",{pre:!0,attrs:{class:"language-shell"}},[a("code",[t._v("/usr/local/nginx/sbin/nginx "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#启动nginx")]),t._v("\n/usr/local/nginx/sbin/nginx -s reload "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#重启nginx")]),t._v("\n/usr/local/nginx/sbin/nginx -s stop "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#停止nginx")]),t._v("\n")])])]),a("h2",{attrs:{id:"检测集群"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#检测集群","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#%E6%A3%80%E6%B5%8B%E9%9B%86%E7%BE%A4"}}),t._v("检测集群")]),t._v(" "),a("div",{staticClass:"language-shell extra-class"},[a("pre",{pre:!0,attrs:{class:"language-shell"}},[a("code",[t._v("/usr/bin/fdfs_monitor /etc/fdfs/storage.conf\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# 会显示会有几台服务器 有3台就会 显示 Storage 1-Storage 3的详细信息")]),t._v("\n")])])]),a("h1",{attrs:{id:"说明"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#说明","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#%E8%AF%B4%E6%98%8E"}}),t._v("说明")]),t._v(" "),a("h2",{attrs:{id:"配置文件"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#配置文件","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6"}}),t._v("配置文件")]),t._v(" "),a("div",{staticClass:"language-shell extra-class"},[a("pre",{pre:!0,attrs:{class:"language-shell"}},[a("code",[t._v("tracker_server "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#有几台服务器写几个")]),t._v("\ngroup_name "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#地址的名称的命名")]),t._v("\nbind_addr "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#服务器ip绑定")]),t._v("\nstore_path_count "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#store_path(数字)有几个写几个")]),t._v("\nstore_path"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("数字"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#设置几个储存地址写几个 从0开")]),t._v("\n")])])]),a("h2",{attrs:{id:"可能遇到的问题"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#可能遇到的问题","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("a",{attrs:{href:"#%E5%8F%AF%E8%83%BD%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98"}}),t._v("可能遇到的问题")]),t._v(" "),a("div",{staticClass:"tip custom-block"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("ol",[a("li",[t._v("如果不是root 用户 你必须在除了cd的命令之外 全部加sudo")]),t._v(" "),a("li",[t._v("如果不是root 用户 编译和安装分开进行 先编译再安装")]),t._v(" "),a("li",[t._v("如果上传成功 但是nginx报错404 先检查mod_fastdfs.conf文件中的store_path0是否一致")]),t._v(" "),a("li",[t._v("如果nginx无法访问 先检查防火墙 和 mod_fastdfs.conf文件tracker_server是否一致")]),t._v(" "),a("li",[t._v("如果不是在/usr/local/src文件夹下安装 可能会编译出错")])])])])}],!1,null,null,null);e.options.__file="fastfds.md";s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/6.cde8d8ab.js b/assets/js/6.cde8d8ab.js new file mode 100644 index 0000000..77b268f --- /dev/null +++ b/assets/js/6.cde8d8ab.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{170:function(e,r,t){"use strict";t.r(r);var n=t(0),o=Object(n.a)({},function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("div",{staticClass:"content"},[e._m(0),e._v(" "),t("hr"),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://cssicon.space/",target:"_blank",rel:"noopener noreferrer"}},[e._v("cssicon"),t("OutboundLink")],1),e._v(" 纯CSS画的图标")]),e._v(" "),t("li",[t("a",{attrs:{href:"http://bennettfeely.com/clippy/",target:"_blank",rel:"noopener noreferrer"}},[e._v("clippy"),t("OutboundLink")],1),e._v("用CSS制作各种形状")]),e._v(" "),t("li",[t("a",{attrs:{href:"http://www.aigei.com/bgremover",target:"_blank",rel:"noopener noreferrer"}},[e._v("bgremover"),t("OutboundLink")],1),e._v(" 在线图片去底")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.iloveimg.com/zh-cn/compress-image",target:"_blank",rel:"noopener noreferrer"}},[e._v("iloveimg"),t("OutboundLink")],1),e._v("在线图片处理(功能很强大)")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.sojson.com/web/img.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("sojson"),t("OutboundLink")],1),e._v("上传图片识别图片主色")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.sojson.com/web/img.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Css.js"),t("OutboundLink")],1),e._v("颜色转换、js压缩格式化")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://coolors.co/",target:"_blank",rel:"noopener noreferrer"}},[e._v("coolor"),t("OutboundLink")],1),e._v("配色网站")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://uigradients.com/#SummerDog",target:"_blank",rel:"noopener noreferrer"}},[e._v("uigradients"),t("OutboundLink")],1),e._v("渐变色网站")])])])},[function(){var e=this.$createElement,r=this._self._c||e;return r("h1",{attrs:{id:"前端"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#前端","aria-hidden":"true"}},[this._v("#")]),this._v(" 前端")])}],!1,null,null,null);o.options.__file="README.md";r.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/7.ef73961a.js b/assets/js/7.ef73961a.js new file mode 100644 index 0000000..71ff4d4 --- /dev/null +++ b/assets/js/7.ef73961a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{175:function(t,s,i){"use strict";i.r(s);var e=i(0),a=Object(e.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"content"},[s("h1",{attrs:{id:"文章收集"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#文章收集","aria-hidden":"true"}},[this._v("#")]),this._v(" 文章收集")]),this._v(" "),s("div",{staticClass:"tip custom-block"},[s("p",{staticClass:"custom-block-title"},[this._v("说明")]),this._v(" "),s("p",[this._v("收集一些平时看的文章")])])])}],!1,null,null,null);a.options.__file="README.md";s.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/8.88b71ced.js b/assets/js/8.88b71ced.js new file mode 100644 index 0000000..a526f5b --- /dev/null +++ b/assets/js/8.88b71ced.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{174:function(t,e,s){"use strict";s.r(e);var n=s(0),i=Object(n.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"content"},[e("h1",{attrs:{id:"路由模块化"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#路由模块化","aria-hidden":"true"}},[this._v("#")]),this._v(" 路由模块化")])])}],!1,null,null,null);i.options.__file="路由模块化.md";e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/9.70f81dfd.js b/assets/js/9.70f81dfd.js new file mode 100644 index 0000000..416a7be --- /dev/null +++ b/assets/js/9.70f81dfd.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{173:function(t,e,s){"use strict";s.r(e);var n=s(0),i=Object(n.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"content"},[e("p",[this._v("'# Hello VuePress!'\n")]),e("div",{staticClass:"table-of-contents"},[e("ul")]),e("p")])}],!1,null,null,null);i.options.__file="README.md";e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/app.4cf69cb3.js b/assets/js/app.4cf69cb3.js new file mode 100644 index 0000000..5320772 --- /dev/null +++ b/assets/js/app.4cf69cb3.js @@ -0,0 +1,8 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,a,s=e[0],c=e[1],u=e[2],f=0,p=[];f0?o(r(t),9007199254740991):0}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){for(var r=n(20),o=n(28),i=n(11),a=n(3),s=n(10),c=n(18),u=n(1),l=u("iterator"),f=u("toStringTag"),p=c.Array,d={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},h=o(d),v=0;v=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,e,n){"use strict";var r=n(6);t.exports=function(t,e){return!!t&&r(function(){e?t.call(null,function(){},1):t.call(null)})}},function(t,e,n){"use strict";var r=n(2),o=n(32)(3);r(r.P+r.F*!n(21)([].some,!0),"Array",{some:function(t){return o(this,t,arguments[1])}})},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(8).f,o=n(14),i=n(1)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e,n){var r=n(2);r(r.S+r.F,"Object",{assign:n(103)})},function(t,e,n){var r=n(80),o=n(62);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){var r=n(60),o=n(16);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(19),o=n(28);n(83)("keys",function(){return function(t){return o(r(t))}})},function(t,e,n){"use strict";var r=n(2),o=n(32)(0),i=n(21)([].forEach,!0);r(r.P+r.F*!i,"Array",{forEach:function(t){return o(this,t,arguments[1])}})},function(t,e,n){var r=n(9),o=n(60),i=n(19),a=n(15),s=n(111);t.exports=function(t,e){var n=1==t,c=2==t,u=3==t,l=4==t,f=6==t,p=5==t||f,d=e||s;return function(e,s,h){for(var v,m,g=i(e),y=o(g),_=r(s,h,3),b=a(y.length),x=0,w=n?d(e,b):c?d(e,0):void 0;b>x;x++)if((p||x in y)&&(m=_(v=y[x],x,g),t))if(n)w[x]=m;else if(m)switch(t){case 3:return!0;case 5:return v;case 6:return x;case 2:w.push(v)}else if(l)return!1;return f?-1:u||l?l:w}}},function(t,e,n){"use strict";var r=n(2),o=n(32)(2);r(r.P+r.F*!n(21)([].filter,!0),"Array",{filter:function(t){return o(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(2),o=n(32)(1);r(r.P+r.F*!n(21)([].map,!0),"Array",{map:function(t){return o(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(5),o=n(19),i=n(15),a=n(25),s=n(67),c=n(68),u=Math.max,l=Math.min,f=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,d=/\$([$&`']|\d\d?)/g;n(70)("replace",2,function(t,e,n,h){return[function(r,o){var i=t(this),a=null==r?void 0:r[e];return void 0!==a?a.call(r,i,o):n.call(String(i),r,o)},function(t,e){var o=h(n,t,this,e);if(o.done)return o.value;var f=r(t),p=String(this),d="function"==typeof e;d||(e=String(e));var m=f.global;if(m){var g=f.unicode;f.lastIndex=0}for(var y=[];;){var _=c(f,p);if(null===_)break;if(y.push(_),!m)break;""===String(_[0])&&(f.lastIndex=s(p,i(f.lastIndex),g))}for(var b,x="",w=0,k=0;k=w&&(x+=p.slice(w,$)+j,w=$+C.length)}return x+p.slice(w)}];function v(t,e,r,i,a,s){var c=r+t.length,u=i.length,l=d;return void 0!==a&&(a=o(a),l=p),n.call(s,l,function(n,o){var s;switch(o.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,r);case"'":return e.slice(c);case"<":s=a[o.slice(1,-1)];break;default:var l=+o;if(0===l)return n;if(l>u){var p=f(l/10);return 0===p?n:p<=u?void 0===i[p-1]?o.charAt(1):i[p-1]+o.charAt(1):n}s=i[l-1]}return void 0===s?"":s})}})},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){var r,o; +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */void 0===(o="function"==typeof(r=function(){var t,e,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(t,e,n){return tn?n:t}function i(t){return 100*(-1+t)}n.configure=function(t){var e,n;for(e in t)void 0!==(n=t[e])&&t.hasOwnProperty(e)&&(r[e]=n);return this},n.status=null,n.set=function(t){var e=n.isStarted();t=o(t,r.minimum,1),n.status=1===t?null:t;var c=n.render(!e),u=c.querySelector(r.barSelector),l=r.speed,f=r.easing;return c.offsetWidth,a(function(e){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,function(t,e,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+i(t)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(t)+"%,0)"}:{"margin-left":i(t)+"%"}).transition="all "+e+"ms "+n,o}(t,l,f)),1===t?(s(c,{transition:"none",opacity:1}),c.offsetWidth,setTimeout(function(){s(c,{transition:"all "+l+"ms linear",opacity:0}),setTimeout(function(){n.remove(),e()},l)},l)):setTimeout(e,l)}),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var t=function(){setTimeout(function(){n.status&&(n.trickle(),t())},r.trickleSpeed)};return r.trickle&&t(),this},n.done=function(t){return t||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(t){var e=n.status;return e?("number"!=typeof t&&(t=(1-e)*o(Math.random()*e,.1,.95)),e=o(e+t,0,.994),n.set(e)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},t=0,e=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===e&&n.start(),t++,e++,r.always(function(){0==--e?(t=0,n.done()):n.set((t-e)/t)}),this):this},n.render=function(t){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var e=document.createElement("div");e.id="nprogress",e.innerHTML=r.template;var o,a=e.querySelector(r.barSelector),c=t?"-100":i(n.status||0),l=document.querySelector(r.parent);return s(a,{transition:"all 0 linear",transform:"translate3d("+c+"%,0,0)"}),r.showSpinner||(o=e.querySelector(r.spinnerSelector))&&p(o),l!=document.body&&u(l,"nprogress-custom-parent"),l.appendChild(e),e},n.remove=function(){l(document.documentElement,"nprogress-busy"),l(document.querySelector(r.parent),"nprogress-custom-parent");var t=document.getElementById("nprogress");t&&p(t)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var t=document.body.style,e="WebkitTransform"in t?"Webkit":"MozTransform"in t?"Moz":"msTransform"in t?"ms":"OTransform"in t?"O":"";return e+"Perspective"in t?"translate3d":e+"Transform"in t?"translate":"margin"};var a=function(){var t=[];function e(){var n=t.shift();n&&n(e)}return function(n){t.push(n),1==t.length&&e()}}(),s=function(){var t=["Webkit","O","Moz","ms"],e={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(t,e){return e.toUpperCase()}),e[n]||(e[n]=function(e){var n=document.body.style;if(e in n)return e;for(var r,o=t.length,i=e.charAt(0).toUpperCase()+e.slice(1);o--;)if((r=t[o]+i)in n)return r;return e}(n))}function r(t,e,r){e=n(e),t.style[e]=r}return function(t,e){var n,o,i=arguments;if(2==i.length)for(n in e)void 0!==(o=e[n])&&e.hasOwnProperty(n)&&r(t,n,o);else r(t,i[1],i[2])}}();function c(t,e){var n="string"==typeof t?t:f(t);return n.indexOf(" "+e+" ")>=0}function u(t,e){var n=f(t),r=n+e;c(n,e)||(t.className=r.substring(1))}function l(t,e){var n,r=f(t);c(t,e)&&(n=r.replace(" "+e+" "," "),t.className=n.substring(1,n.length-1))}function f(t){return(" "+(t.className||"")+" ").replace(/\s+/gi," ")}function p(t){t&&t.parentNode&&t.parentNode.removeChild(t)}return n})?r.call(e,n,e,t):r)||(t.exports=o)},function(t,e){t.exports=!1},function(t,e,n){var r=n(12),o=n(1)("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),o))?n:i?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,n){var r=n(4),o=n(3).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},function(t,e,n){var r=n(9),o=n(95),i=n(96),a=n(5),s=n(15),c=n(97),u={},l={};(e=t.exports=function(t,e,n,f,p){var d,h,v,m,g=p?function(){return t}:c(t),y=r(n,f,e?2:1),_=0;if("function"!=typeof g)throw TypeError(t+" is not iterable!");if(i(g)){for(d=s(t.length);d>_;_++)if((m=e?y(a(h=t[_])[0],h[1]):y(t[_]))===u||m===l)return m}else for(v=g.call(t);!(h=v.next()).done;)if((m=o(v,y,h.value,e))===u||m===l)return m}).BREAK=u,e.RETURN=l},function(t,e,n){var r=n(11);t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},function(t,e,n){"use strict";var r=n(3),o=n(8),i=n(7),a=n(1)("species");t.exports=function(t){var e=r[t];i&&e&&!e[a]&&o.f(e,a,{configurable:!0,get:function(){return this}})}},function(t,e,n){var r=n(12);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(72)("keys"),o=n(24);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var r=n(24)("meta"),o=n(4),i=n(14),a=n(8).f,s=0,c=Object.isExtensible||function(){return!0},u=!n(6)(function(){return c(Object.preventExtensions({}))}),l=function(t){a(t,r,{value:{i:"O"+ ++s,w:{}}})},f=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,r)){if(!c(t))return"F";if(!e)return"E";l(t)}return t[r].i},getWeak:function(t,e){if(!i(t,r)){if(!c(t))return!0;if(!e)return!1;l(t)}return t[r].w},onFreeze:function(t){return u&&f.NEED&&c(t)&&!i(t,r)&&l(t),t}}},function(t,e,n){"use strict";var r=n(52),o=n(2),i=n(11),a=n(10),s=n(18),c=n(108),u=n(26),l=n(110),f=n(1)("iterator"),p=!([].keys&&"next"in[].keys()),d=function(){return this};t.exports=function(t,e,n,h,v,m,g){c(n,e,h);var y,_,b,x=function(t){if(!p&&t in $)return $[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},w=e+" Iterator",k="values"==v,C=!1,$=t.prototype,S=$[f]||$["@@iterator"]||v&&$[v],O=S||x(v),E=v?k?x("entries"):O:void 0,A="Array"==e&&$.entries||S;if(A&&(b=l(A.call(new t)))!==Object.prototype&&b.next&&(u(b,w,!0),r||"function"==typeof b[f]||a(b,f,d)),k&&S&&"values"!==S.name&&(C=!0,O=function(){return S.call(this)}),r&&!g||!p&&!C&&$[f]||a($,f,O),s[e]=O,s[w]=d,v)if(y={values:k?O:x("values"),keys:m?O:x("keys"),entries:E},g)for(_ in y)_ in $||i($,_,y[_]);else o(o.P+o.F*(p||C),e,y);return y}},function(t,e,n){var r=n(8).f,o=Function.prototype,i=/^\s*function ([^ (]*)/;"name"in o||n(7)&&r(o,"name",{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(t){return""}}})},function(t,e,n){"use strict";var r=n(2),o=n(81)(!1),i=[].indexOf,a=!!i&&1/[1].indexOf(1,-0)<0;r(r.P+r.F*(a||!n(21)(i)),"Array",{indexOf:function(t){return a?i.apply(this,arguments)||0:o(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(88)(!0);t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},function(t,e,n){"use strict";var r=n(53),o=RegExp.prototype.exec;t.exports=function(t,e){var n=t.exec;if("function"==typeof n){var i=n.call(t,e);if("object"!=typeof i)throw new TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(t))throw new TypeError("RegExp#exec called on incompatible receiver");return o.call(t,e)}},function(t,e,n){"use strict";var r,o,i=n(89),a=RegExp.prototype.exec,s=String.prototype.replace,c=a,u=(r=/a/,o=/b*/g,a.call(r,"a"),a.call(o,"a"),0!==r.lastIndex||0!==o.lastIndex),l=void 0!==/()??/.exec("")[1];(u||l)&&(c=function(t){var e,n,r,o,c=this;return l&&(n=new RegExp("^"+c.source+"$(?!\\s)",i.call(c))),u&&(e=c.lastIndex),r=a.call(c,t),u&&r&&(c.lastIndex=c.global?r.index+r[0].length:e),l&&r&&r.length>1&&s.call(r[0],n,function(){for(o=1;o")}),f=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var p=s(t),d=!i(function(){var e={};return e[p]=function(){return 7},7!=""[t](e)}),h=d?!i(function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[u]=function(){return n}),n[p](""),!e}):void 0;if(!d||!h||"replace"===t&&!l||"split"===t&&!f){var v=/./[p],m=n(a,p,""[t],function(t,e,n,r,o){return e.exec===c?d&&!o?{done:!0,value:v.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),g=m[0],y=m[1];r(String.prototype,t,g),o(RegExp.prototype,p,2==e?function(t,e){return y.call(t,this,e)}:function(t){return y.call(t,this)})}}},function(t,e,n){"use strict";var r,o,i,a,s=n(52),c=n(3),u=n(9),l=n(53),f=n(2),p=n(4),d=n(23),h=n(56),v=n(57),m=n(75),g=n(76).set,y=n(99)(),_=n(78),b=n(100),x=n(101),w=n(102),k=c.TypeError,C=c.process,$=C&&C.versions,S=$&&$.v8||"",O=c.Promise,E="process"==l(C),A=function(){},j=o=_.f,T=!!function(){try{var t=O.resolve(1),e=(t.constructor={})[n(1)("species")]=function(t){t(A,A)};return(E||"function"==typeof PromiseRejectionEvent)&&t.then(A)instanceof e&&0!==S.indexOf("6.6")&&-1===x.indexOf("Chrome/66")}catch(t){}}(),L=function(t){var e;return!(!p(t)||"function"!=typeof(e=t.then))&&e},P=function(t,e){if(!t._n){t._n=!0;var n=t._c;y(function(){for(var r=t._v,o=1==t._s,i=0,a=function(e){var n,i,a,s=o?e.ok:e.fail,c=e.resolve,u=e.reject,l=e.domain;try{s?(o||(2==t._h&&M(t),t._h=1),!0===s?n=r:(l&&l.enter(),n=s(r),l&&(l.exit(),a=!0)),n===e.promise?u(k("Promise-chain cycle")):(i=L(n))?i.call(n,c,u):c(n)):u(r)}catch(t){l&&!a&&l.exit(),u(t)}};n.length>i;)a(n[i++]);t._c=[],t._n=!1,e&&!t._h&&I(t)})}},I=function(t){g.call(c,function(){var e,n,r,o=t._v,i=R(t);if(i&&(e=b(function(){E?C.emit("unhandledRejection",o,t):(n=c.onunhandledrejection)?n({promise:t,reason:o}):(r=c.console)&&r.error&&r.error("Unhandled promise rejection",o)}),t._h=E||R(t)?2:1),t._a=void 0,i&&e.e)throw e.v})},R=function(t){return 1!==t._h&&0===(t._a||t._c).length},M=function(t){g.call(c,function(){var e;E?C.emit("rejectionHandled",t):(e=c.onrejectionhandled)&&e({promise:t,reason:t._v})})},N=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),P(e,!0))},D=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw k("Promise can't be resolved itself");(e=L(t))?y(function(){var r={_w:n,_d:!1};try{e.call(t,u(D,r,1),u(N,r,1))}catch(t){N.call(r,t)}}):(n._v=t,n._s=1,P(n,!1))}catch(t){N.call({_w:n,_d:!1},t)}}};T||(O=function(t){h(this,O,"Promise","_h"),d(t),r.call(this);try{t(u(D,this,1),u(N,this,1))}catch(t){N.call(this,t)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(58)(O.prototype,{then:function(t,e){var n=j(m(this,O));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=E?C.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&P(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new r;this.promise=t,this.resolve=u(D,t,1),this.reject=u(N,t,1)},_.f=j=function(t){return t===O||t===a?new i(t):o(t)}),f(f.G+f.W+f.F*!T,{Promise:O}),n(26)(O,"Promise"),n(59)("Promise"),a=n(13).Promise,f(f.S+f.F*!T,"Promise",{reject:function(t){var e=j(this);return(0,e.reject)(t),e.promise}}),f(f.S+f.F*(s||!T),"Promise",{resolve:function(t){return w(s&&this===a?O:this,t)}}),f(f.S+f.F*!(T&&n(79)(function(t){O.all(t).catch(A)})),"Promise",{all:function(t){var e=this,n=j(e),r=n.resolve,o=n.reject,i=b(function(){var n=[],i=0,a=1;v(t,!1,function(t){var s=i++,c=!1;n.push(void 0),a++,e.resolve(t).then(function(t){c||(c=!0,n[s]=t,--a||r(n))},o)}),--a||r(n)});return i.e&&o(i.v),n.promise},race:function(t){var e=this,n=j(e),r=n.reject,o=b(function(){v(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return o.e&&r(o.v),n.promise}})},function(t,e,n){var r=n(13),o=n(3),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(52)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e,n){t.exports=!n(7)&&!n(6)(function(){return 7!=Object.defineProperty(n(54)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){var r=n(4);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){var r=n(5),o=n(23),i=n(1)("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},function(t,e,n){var r,o,i,a=n(9),s=n(98),c=n(77),u=n(54),l=n(3),f=l.process,p=l.setImmediate,d=l.clearImmediate,h=l.MessageChannel,v=l.Dispatch,m=0,g={},y=function(){var t=+this;if(g.hasOwnProperty(t)){var e=g[t];delete g[t],e()}},_=function(t){y.call(t.data)};p&&d||(p=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return g[++m]=function(){s("function"==typeof t?t:Function(t),e)},r(m),m},d=function(t){delete g[t]},"process"==n(12)(f)?r=function(t){f.nextTick(a(y,t,1))}:v&&v.now?r=function(t){v.now(a(y,t,1))}:h?(i=(o=new h).port2,o.port1.onmessage=_,r=a(i.postMessage,i,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(t){l.postMessage(t+"","*")},l.addEventListener("message",_,!1)):r="onreadystatechange"in u("script")?function(t){c.appendChild(u("script")).onreadystatechange=function(){c.removeChild(this),y.call(t)}}:function(t){setTimeout(a(y,t,1),0)}),t.exports={set:p,clear:d}},function(t,e,n){var r=n(3).document;t.exports=r&&r.documentElement},function(t,e,n){"use strict";var r=n(23);function o(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=r(e),this.reject=r(n)}t.exports.f=function(t){return new o(t)}},function(t,e,n){var r=n(1)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i=[7],a=i[r]();a.next=function(){return{done:n=!0}},i[r]=function(){return a},t(i)}catch(t){}return n}},function(t,e,n){var r=n(14),o=n(29),i=n(81)(!1),a=n(61)("IE_PROTO");t.exports=function(t,e){var n,s=o(t),c=0,u=[];for(n in s)n!=a&&r(s,n)&&u.push(n);for(;e.length>c;)r(s,n=e[c++])&&(~i(u,n)||u.push(n));return u}},function(t,e,n){var r=n(29),o=n(15),i=n(104);t.exports=function(t){return function(e,n,a){var s,c=r(e),u=o(c.length),l=i(a,u);if(t&&n!=n){for(;u>l;)if((s=c[l++])!=s)return!0}else for(;u>l;l++)if((t||l in c)&&c[l]===n)return t||l||0;return!t&&-1}}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var r=n(2),o=n(13),i=n(6);t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],a={};a[t]=e(n),r(r.S+r.F*i(function(){n(1)}),"Object",a)}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(5),o=n(109),i=n(62),a=n(61)("IE_PROTO"),s=function(){},c=function(){var t,e=n(54)("iframe"),r=i.length;for(e.style.display="none",n(77).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write(" + + diff --git a/back-end/index.html b/back-end/index.html new file mode 100644 index 0000000..786a974 --- /dev/null +++ b/back-end/index.html @@ -0,0 +1,21 @@ + + + + + + 文章收集 | My Blog + + + + + + + + + + + diff --git a/collection/index.html b/collection/index.html new file mode 100644 index 0000000..ebd3893 --- /dev/null +++ b/collection/index.html @@ -0,0 +1,17 @@ + + + + + + 前端 | My Blog + + + + + + + +

前端


+ + + diff --git a/front-end/index.html b/front-end/index.html new file mode 100644 index 0000000..3bea46b --- /dev/null +++ b/front-end/index.html @@ -0,0 +1,17 @@ + + + + + + 文章收集 | My Blog + + + + + + + +

文章收集

说明

收集一些平时看的文章

+ + + diff --git "a/front-end/\350\267\257\347\224\261\346\250\241\345\235\227\345\214\226.html" "b/front-end/\350\267\257\347\224\261\346\250\241\345\235\227\345\214\226.html" new file mode 100644 index 0000000..f933fc5 --- /dev/null +++ "b/front-end/\350\267\257\347\224\261\346\250\241\345\235\227\345\214\226.html" @@ -0,0 +1,17 @@ + + + + + + 路由模块化 | My Blog + + + + + + + + + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..1d140b4 --- /dev/null +++ b/index.html @@ -0,0 +1,17 @@ + + + + + + My Blog + + + + + + + + + + + diff --git a/project/index.html b/project/index.html new file mode 100644 index 0000000..95f19ae --- /dev/null +++ b/project/index.html @@ -0,0 +1,18 @@ + + + + + + My Blog + + + + + + + + + + + diff --git "a/project/\350\256\276\345\244\207\347\256\241\347\220\206\347\263\273\347\273\237.html" "b/project/\350\256\276\345\244\207\347\256\241\347\220\206\347\263\273\347\273\237.html" new file mode 100644 index 0000000..b0054c3 --- /dev/null +++ "b/project/\350\256\276\345\244\207\347\256\241\347\220\206\347\263\273\347\273\237.html" @@ -0,0 +1,17 @@ + + + + + + 设备管理系统 | My Blog + + + + + + + + + + +