精华内容
下载资源
问答
  • 前言最近收到一个这样的需求,...可以 npm 安装要求实现多页签,并且可以通过浏览器 url 回显多页签.而且页签内要维护一个历史记录,可以后退组件要求异步加载,减少首屏加载时间.很明显,这就是一个 类 ERP 的应用. 做...

    前言

    最近收到一个这样的需求,要求做一个基于 vue 和 element-ui 的通用后台框架页,具体要求如下:

    要求通用性高,需要在后期四十多个子项目中使用,所以大部分地方都做成可配置的.

    要求做成脚手架的形式.可以 npm 安装

    要求实现多页签,并且可以通过浏览器 url 回显多页签.而且页签内要维护一个历史记录,可以后退

    组件要求异步加载,减少首屏加载时间.

    很明显,这就是一个 类 ERP 的应用. 做过 JSP 等后台的同学,对多页签应该都很熟悉吧.

    那接下来我们就来谈谈实现.

    通用性高

    这点其实没啥难点,无非就是麻烦了点,把所有的数据,都提取出来,放在一个 config 文件里面.然后在框架页里面引入,并且绑定到相应的位置上去. 这边有个比较难以取舍的问题,就是如果把一溜的数据全部绑定到 vue 的 data 上面,由于数据量比较多,会导致性能问题,如果分开,又会使配置文件看起来相对复杂,增加后期使用人员的学习成本。这块要看具体的项目需求,由于我这边暂时对前端的性能要求没那么高,所以暂时用全部绑定到 data 的方案

    做成脚手架形式

    起初产品对这个的需求使做成组件的形式,然后发布 npm 包,方便后期更新的时候,只需更新一下 npm 就可以了,无需每个项目去复制粘贴替换,但是基于这是一个框架页,而且可配置项非常多,还要实现 tab 多页签等多方面的考虑,最终选择了脚手架的方案,即便这样后期升级会稍微麻烦一点(起初的方案是框架页放在一个文件夹里,到时候直接替换该文件夹),但相对于组件来说,还是更好维护的,况且后期可以再写一个更新的脚手架,毕竟现在发布一个 npm 工具的成本实在是太低了。

    第一次开发脚手架,看了很多社区的帖子,发现目前大部分脚手架,一般都基于2种形式,一种基于文件复制的形式,另一种基于 git-clone 的形式,经过对比,我觉得文件复制的有点复杂了,我其实只是需要一个能一键安装的工具而已,所以 git-clone 的形式还是比较适合我。

    以下就是脚手架的代码,虽然只是简单的五六十行代码,不过查资料+趟坑,也花了我一个上午的时间。

    #!/usr/bin/env node

    const shell = require('shelljs');

    const program = require('commander');

    const inquirer = require('inquirer');

    const ora = require('ora');

    const fs = require('fs');

    const path = require('path');

    const spinner = ora();

    const gitClone = require('git-clone')

    const chalk = require('chalk')

    program

    .version('1.0.0', '-v, --version')

    .parse(process.argv);

    const questions = [{

    type: 'input',

    name: 'name',

    message: '请输入项目名称',

    default: 'my-project',

    validate: (name)=>{

    if(/^[a-z]+/.test(name)){

    return true;

    }else{

    return '项目名称必须以小写字母开头';

    }

    }

    }]

    inquirer.prompt(questions).then((dir)=>{

    downloadTemplate(dir.name);

    })

    function downloadTemplate(dir){

    // 判断目录是否已存在

    let isHasDir = fs.existsSync(path.resolve(dir));

    if(isHasDir){

    spinner.fail('当前目录已存在!');

    return false;

    }

    spinner.start(`您选择的目录是: ${chalk.red(dir)}, 数据加载中,请稍后...`);

    // 克隆 模板文件

    gitClone(`https://github.com/noahlam/vue-multi-tab.git`, dir , null, function(err) {

    // 移除无用的文件

    shell.rm('-rf', `${dir}/.git`)

    spinner.succeed('项目初始化成功!')

    // 运行常用命令

    shell.cd(dir)

    spinner.start(`正在帮您安装依赖...`);

    shell.exec('npm i')

    spinner.succeed('依赖安装成功!')

    shell.exec('npm run dev')

    })

    }

    如果你这个脚手架有疑问或者兴趣,可以直接访问 github 上的代码 tab-cli

    实现多页签

    要想实现多页签,那么 vue-router 基本算是废了,为什么? vue-router 是根据 url 来切换单个组件的,而页签则需要再组件内部同时存在多个子组件的,所以路由无法胜任(至少我是这么认为的,如果你有更好的方案,恳请不吝赐教)。

    多个页签的显示,其实不难, element 有现成的 tab 组件,于是老夫写代码就是一把梭,撸起袖子就是干,噼里啪啦一顿写,写完一测,没有任何问题,实在是不要太简单,丢给产品预览:

    复制浏览器地址到别的地方粘贴,tab 不能正确回显

    tab 内需要实现跳转,而且要能返回。

    第一个问题比较简单,自己手写一个基于 hash 的 伪路由 把当前 tab 的 id 放到 url 上去,然后回显的时候,根据 url 打开对应的 tab.

    tip: 关于如何实现路由,请看我另外一篇博客 自己动手实现一个前端路由

    第二个问题,大概就是本文的重点了,这里详细说明一下需求,每个 tab 都可以在 tab 内部 跳转 ,这里的跳转,要做的跟 vue-router 的有大体上差不多,要能 push, replace, back,还能带参数。

    那么怎么实现呢? 首先维护一个打开的 tab 列表,然后每个列表里面再维护一个用过的组件列表(包含参数),这样大概就能实现了吗?当然不是,组件的跳转,参数的传递,不可能让使用者自己去实现这些方法吧,我选择把封装一个公共对象,然后挂载在 vue.prototype上。然后类似 vue.$router.xxxx 一样(我的命名是 vue.$tab)可以在页面的任何地方使用,如果你对具体的实现方法有兴趣,欢迎点击本文结尾的链接,去我的Github仓库上查看。

    组件异步加载

    之前只用过基于 vue-router 的异步加载方法,然而这个项目里面并没有使用 vue-router,怎么异步呢? 翻了一下 vue 的官方文档是这么写的:

    Vue.component(

    'async-webpack-example',

    // 这个 `import` 函数会返回一个 `Promise` 对象。

    () => import('./my-async-component')

    )

    然而我试了一下,发现报错了,import 不能在这里使用,换了 require 也不行,不知道上我哪里没弄好,如果你刚好知道又刚好有空,请告诉我,谢谢!后面在 segmentfault 上 看到 这一篇, 使用 webpack 的 require.ensure 可以实现

    // 第一个字符串是 组件名,第二个是 组件路径,第三个是 chunkName (如果不指定则以1.js,2.js....n.js命名)

    vue.component('home', (resolve) => {require.ensure([], ()=>resolve(require('@/Views/index.vue')), 'home')})

    顺便还要在 webpack 里面的 output 下面配置一下 chunkFilename: '[name].js',, 当然文件名格式可以按你项目的需求来,我这边就按最简单的

    结束语

    首先,当然上献上该项目的 github地址 咯

    其次是本文的的地址 个人技术帖合集

    以上项目 欢迎随意 star 和 follow, 和不随意的 issue

    展开全文
  • 第一章——vue3.0+ts+element-plus多页签应用模板:项目搭建篇 第二章——vue3.0+ts+element-plus多页签应用模板:安装vue-router与vuex篇 一、目录结构 现在,你的目录结构应该是这样的 (忽略node_modules): ├─...

    系列文章

    一、安装vue-router

    因为我们是给vue3安装vue-router,所以需要指定4以上的版本号:

    npm i vue-router@4 --save
    

    安装成功后,在src目录下新建文件夹router,并创建route.ts

    import { RouteRecordRaw } from 'vue-router'
    
    // 使用require.context()自动获取模块
    const modules: RouteRecordRaw[] = []
    const moduleFiles = require.context('./modules', false, /\.ts$/)
    moduleFiles.keys().forEach((key) => modules.push(moduleFiles(key).default))
    modules.sort((moduleA, moduleB) => {
      const orderA = moduleA.meta!.order as number
      const orderB = moduleB.meta!.order as number
      return orderA - orderB
    })
    
    const routes: RouteRecordRaw[] = [...modules]
    
    export default routes
    

    然后在router目录下新建modules目录,用来存放路由模块。为什么这里要使用模块化的路由呢?主要有两个原因:首先第一个是因为,当项目越来越大的时候,随之而来的是越来越多的路由,如果将这么多路由全都一股脑的写在一个文件里的话,后期维护会十分困难。另外一个,是因为我们要将路由与侧边菜单关联起来,做到增添路由时,侧边菜单也同步渲染。

    然后我们在router目录下创建入口文件index.ts,输入以下代码:

    import { createRouter, /*createWebHistory*/, createWebHashHistory } from 'vue-router'
    import routes from './routes'
    
    const router = createRouter({
      // history: createWebHistory(),   // history模式
      history: createWebHashHistory(),  // hash模式
      routes
    })
    
    export default router
    

    这里我使用的是hash路由模式,也就是在URL中使用#哈希值来切换路由的方式。但是这种方式的URL很丑陋。所以我们也可以选择history模式。在history模式下。URL中的#会被消除,只有干干净净的路径。但是,history由于没有了哈希值,每次跳转路由都会请求完整的URL地址,这就需要在服务器端配置一下,否则当你刷新页面,或者直接访问某个非主页路由的时候,会出现404。这里使用nginx举个例子:

    location / {
      root       /usr/local/html/multi-tabs;
      index      index.html;
      try_files  $uri $uri/ /index.html;
    }
    

    这样配置之后,服务器会按照try_files后面的参数依次去匹配root中对应的文件或文件夹。如果匹配到的是一个文件,那么将返回这个文件;如果匹配到的是一个文件夹,那么将返回这个文件夹中index指令指定的文件。而$uri参数将作为前面没有匹配到的fallback。$uri是nginx中的变量,比如我访问的网址是http://localhost:8080/home那么它代表的就是/home

    此外,我们还需要在vue.config.js中配置一下publicPath属性:

    const options = { publicPath: '/' }
    

    详细了解可以去这篇文章看看Vue Router history模式的配置方法及其原理

    到这里,vue-router的引入就完成了。关于路由模块的写法,到后面侧边栏章节的时候再详述。

    二、安装vuex

    因为我们是给vue3安装vuex,所以需要指定4以上的版本号:

    npm i vuex@4 --save
    

    安装成功后,在src目录下新建文件夹store,并创建文件index.ts,然后输入以下代码:

    import { createStore, useStore as rawUseStore } from 'vuex'
    
    // 使用require.context()自动获取模块
    const moduleFiles = require.context('./modules', false, /\.ts$/)
    const modules = moduleFiles.keys().reduce((modules: ModuleTree<RootStateProps>, modulePath) => {
      const moduleName = Utils.getFileName(modulePath, 'Module')
      const value = moduleFiles(modulePath)
      modules[moduleName] = value.default
      return modules
    }, {})
    
    const store = createStore({ modules })
    
    // 创建vuex-key,用于获取类型提示
    export const key: InjectionKey<Store<RootStateProps>> = Symbol('vue-store')
    // 导出可自动导入key的useStore方法
    export const useStore = () => rawUseStore(key)
    export default store
    

    之后,同目录下创建modules文件夹,用于存放各个模块的全局状态。

    三、改写main.ts

    安装并配置好vue-router和vuex后,我们需要在main.ts中引入:

    import router from './router'
    import store, { key } from './store'
    app.use(router)
    app.use(store, key)
    

    至此,vue-router和vuex就正式引入到项目中了

    下一篇预告:vue3.0+ts+element-plus多页签应用模板:element-plus

    展开全文
  • 想试着用webpack打包多页(多个html文件)应用,不同html之间(利用a标签)跳转只和项目文件结构路径相关,但是打包后发现页面之间跳转都是404了!源码地址:...

    想试着用webpack打包多页(多个html文件)应用,不同html之间(利用a标签)跳转只和项目文件结构路径相关,但是打包后发现页面之间跳转都是404了!

    源码地址:https://gitee.com/qingyun1029/webpack-for-multiple-page-demo

    使用方式:

    克隆项目到本地

    git clone git@gitee.com:qingyun1029/webpack-for-multiple-page-demo.git

    安装依赖模块

    npm install

    打包代码

    npm run build

    问题重现:打包后,打开dist/index.html,点击页面上的链接,无法跳转到about页面;反之亦然!

    分析:

    页面之间的跳转路径唯一相关的是项目文件路径结构,但是通过webpack打包后,输出的路径肯定和源码中写的路径不一样的(通常源码页面放在src文件夹下面,但是打包后肯定不希望有这层路径吧!),所以我该怎么处理这一层关系呢?

    期望:

    通过webpack打包后的文件路径能够比较灵活的自定义;

    页面之间能够正常跳转;

    webpack配置如下:

    'use strict'

    const webpack = require('webpack')

    const path = require('path')

    const HtmlWebpackPlugin = require('html-webpack-plugin')

    module.exports = {

    mode: 'production',

    entry: {

    home: './src/pages/home/index.js',

    about: './src/pages/about/index.js',

    },

    output: {

    path: path.resolve(__dirname, './dist'),

    filename: '[name].[chunkhash].js',

    },

    resolve: {

    extensions: ['.js', '.json'],

    },

    module: {

    },

    plugins: [

    new HtmlWebpackPlugin({

    chunks: ['home'],

    filename: 'home.html',

    template: 'src/pages/home/html/index.html',

    inject: true,

    minify: {

    removeComments: true,

    collapseWhitespace: true,

    },

    }),

    new HtmlWebpackPlugin({

    chunks: ['about'],

    filename: 'about.html',

    template: 'src/pages/about/html/index.html',

    inject: true,

    minify: {

    removeComments: true,

    collapseWhitespace: true,

    },

    }),

    ],

    }

    展开全文
  • 远程查看服务器文件夹内的文件夹 内容精选换一换请使用Mind Studio的安装用户进行升级操作,在升级前请先登录到后台服务器,切换到root用户在/usr/bin目录下执行./add_sudo.sh username脚本进行加权操作,使用命令为...

    远程查看服务器文件夹内的文件夹 内容精选

    换一换

    c8a5a5028d2cabfeeee0907ef5119e7e.png

    请使用Mind Studio的安装用户进行升级操作,在升级前请先登录到后台服务器,切换到root用户在/usr/bin目录下执行./add_sudo.sh username脚本进行加权操作,使用命令为:界面参数解释如表1所示。升级成功后或者取消升级操作,关闭图2所示的界面,会自动删除Mind Studio后台服务器产生的与升级相关的如下冗

    请使用Mind Studio的安装用户进行升级操作,在升级前请先登录到后台服务器,切换到root用户在/usr/bin目录下执行./add_sudo.sh username脚本进行加权操作,使用命令为:界面参数解释如表1所示。升级成功后或者取消升级操作,关闭图2所示的界面,会自动删除Mind Studio后台服务器产生的与升级相关的如下冗

    远程查看服务器文件夹内的文件夹 相关内容

    通过Mind Studio操作界面提供的编译界面进行编译。此种编译方式,用户无需编写Makefile文件,详细操作步骤如下。自定义配置工程结构分为Main、Host、Device三部分。每个.so文件需要根据sample.prototxt文件中的每个Engine的side值在相应页签配置。Main、host与Device的参数描述如表1所

    安装X722板载网卡驱动软件包,使裸金属服务器支持在v5服务器上下发。其他类型服务器可跳过此步骤。本文以Windows Server 2016为例,Windows Server 2012 R2与之类似。解压缩准备工作中的“onboard_driver_win2k16.iso”文件,找到其中的Intel网卡所在的压缩包或文件夹,如果是压缩包

    远程查看服务器文件夹内的文件夹 更多内容

    a0c42bb47a44c6ed1cd778f97e224009.png

    通过Mind Studio操作界面提供的编译界面进行编译。此种编译方式,用户无需编写Makefile文件,详细操作步骤如下。自定义配置工程结构分为Main、Host、Device三部分。每个.so文件需要根据graph_sample_mini文件中的每个Engine的side值在相应页签配置。Main、host与Device的参数描述如表

    ea3d514774dda107c847f333927c833f.png

    通过Mind Studio操作界面提供的编译界面进行编译。此种编译方式,用户无需编写Makefile文件,详细操作步骤如下。自定义配置工程结构分为Main、Host、Device三部分。每个.so文件需要根据sample.prototxt文件中的每个Engine的side值在相应页签配置。Main、host与Device的参数描述如表1所

    0a0ca88b94963916c79cc35f28e2f501.png

    添加节点时提示“添加节点失败,节点已存在”。待添加节点的服务器上已安装系统性能分析或者添加过节点。如果待添加节点的服务器上已安装系统性能分析,需要登录服务器卸载系统性能分析,详细步骤请参见卸载,卸载成功后重新添加节点。卸载前请确认服务器上安装的系统性能分析没有在使用。如果工具卸载失败,需要手动删除“/home/malluma/mallum

    c98716077afa118c4722d3df701d5c06.png

    上传的文件和上传的文件夹中包含的文件支持的格式请参见支持的文件格式。文件上传:从本地上传:在Projects Explorer视图中选中一个文件夹,依次单击File > Add File > Add File(Client)打开文件上传对话框,选择本地文件后上传,上传成功后,如图1所示。从服务器上传:在Projects Explorer视

    b5693ff7a1d6bd5360d83fe2bfafdfb3.png

    已获取自动化工具包,并上传到服务器完成解压,得到完整的软件文件夹tsdbtool。已下载依赖:GCC-7.3.0、CMake-3.5.2的源码包,放到tsdbtool文件夹下的mysqlDep文件夹中,下载地址见表2。已获取MySQL的源码包或者RPM包,并上传到自动化工具tsdbtool目录下。根据实际环境,完成安装配置文件mysqlc

    293f5c3a9815ee95e4ed79a7f04b8f18.png

    该任务以“Windows Server 2008 R2 64位”操作系统为例,指导用户安装Windows操作系统。由于镜像文件不同,安装步骤稍有不同,请根据实际的安装界面提示进行操作。请根据实际情况完成时区、KMS地址、补丁服务器、输入法、语言等相关配置。已使用平台提供的“远程登录”方式,登录云服务器并进入安装界面。操作系统安装成功前,禁

    1a97c4f052299ae736e0af6fa2667c80.png

    本小节提供常用的ADB命令,方便您日常使用。安装APPadb install -rxxx.apk //重新安装现有应用,保留其数据和缓存文件

    adb install -sxxx.apk //安装apk到SD卡

    adb install -fxxx.apk //安装apk到内部系统内存获取安装位置adb shell pm get-ins

    c8670e33c445c10cd2a0fcb5ca15332b.png

    只有在本端设备为主用节点时支持该操作,当本端设备降至备用节点时,请前往对端设备进行操作。若倒换不成功,可勾选“强制倒换”,进行强制操作。只有在本端设备为主用节点时支持该操作,当本端设备降至备用节点时,请前往对端设备进行操作。禁用时长设置(分钟):1-1440整数。禁用成功后,主备倒换功能将不可用,系统将在设定的时间后恢复主备倒换功能,如需

    b7d83a2380c86c6f5139c7b0f3df6b7a.png

    制作Docker镜像,有以下两种方法。快照方式制作镜像(偶尔制作的镜像):在基础镜像上,比如Ubuntu,先登录镜像系统并安装Docker软件,然后整体制作快照,即可得到所需软件的Docker镜像。Dockerfile方式制作镜像(经常更新的镜像):将软件安装的流程写成DockerFile,使用Docker build构建成Docker镜

    39119fac39059b64817699818002d26a.png

    无需编写Makefile,通过Mind Studio操作界面提供的编译界面进行编译,详细操作步骤如下。自定义配置工程结构分为Main、Host、Device三部分。每个.so文件需要根据sample.prototxt文件中的每个Engine的side值在相应页签配置。Main、host与Device的参数描述如表1所示。三个页签的配置依据

    bde960fb156614c03a124ff840e10cb0.png

    添加节点时提示“添加节点失败,节点已存在”,如图1所示。待添加节点的服务器上已安装系统性能分析或者添加过节点。如果待添加节点的服务器上已安装系统性能分析,需要登录服务器卸载系统性能分析,详细步骤请参见卸载,卸载成功后重新添加节点。卸载前请确认服务器上安装的系统性能分析没有在使用。如果工具卸载失败,需要手动删除“/home/malluma/

    展开全文
  • 目录 系列文章 一、安装vue-cli@4.5.x 二、创建项目 三、项目配置 四、IDE配置 五、vue.config.js配置 六、重置浏览器默认样式 系列文章 vue3.0+ts+element-plus多页签应用模板:前言 vue3.0+ts+element-plus多页签...
  • linux打开多层文件夹

    2021-05-13 23:56:53
    您可以使用混合云备份服务(HBR)备份ECS实例中的文件,并可以在文件丢失或受损时进行恢复。本文为您介绍如何备份ECS实例中的文件。前提条件 您已经完成了... 在ECS文件备份页面,单击ECS实例页签。 找到目标ECS实例...
  • VSCode 多文件夹工作区

    千次阅读 2021-01-17 12:37:55
    VS Code 多文件夹工作区,多文件夹工作区(multi-root workspace)。老实说呢,这个概念是有一定的理解难度的。上面我们提到的基于文件夹的这种项目管理方式,从 VS Code 第一天开始就存在了。也几乎从第一天开始,...
  • 问题:如果我将Subversion工作副本重命名/移动到文件...即使通过LAN(ssh)进行干净检查也需要太时间,更不用说WAN了.另一个问题是,当我们使用SmartSVN for Windows时,它还必须重建chache,这也需要花费很时间.另一...
  • 发布时间:2018-01-22我的世界游戏文件夹目录作用介绍 各个文件夹都是什么用.那下面给大家介绍的则是我的世界游戏文件夹目录索引的内容哦~那到底在我的世界文件夹中各个文件夹都有设么作用呢?那下面一一介绍一下吧! ...
  • 服务器分享文件夹给客户端 内容精选换一换SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(访问方式为HTTPS),实现数据信息在客户端和服务器之间的加密传输,可以防止数据信息的泄露。SSL保证了...
  • 发布时间:2016-05-14模拟人生3" data_ue_src=...标签:游戏攻略 游戏秘籍 模拟人生3发布时间:2016-04-01Mod文件正确安装方法步骤如下-- 正版:把Mod文件夹放置到steam\SteamApps\sourcemods\,...
  • Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件,那么你知道局域网web共享文件夹的方法吗?下面是学习啦小编整理的一些关于局域网web...
  • 发布时间:2017-11-07今天游戏园的小编就为大家解析一下我的世界截图保存在哪个文件夹,许多我的世界小白玩家最近都在问游戏截图在哪个保存地方,不了解的玩家请看下面的内容! 玩家小白:怎么样在我的世界游戏中截图?...
  • 服务器建立文件夹

    2021-08-12 08:52:29
    服务器建立文件夹 内容精选换一换本指导适用于用户做网页301重定向时参考...设置新建网站的属性,具体参数设置如下:选择“主目录”页签,并选择“重定向到URL”。重定向到:www.aaa.已获取自动化工具包,并上传到...
  • 发布时间:2016-04-07有许多玩家反映在方舟生存进化当中自己在洞穴里只能挖...标签:游戏攻略 游戏秘籍 方舟生存进化发布时间:2016-05-19怎么驯服恐龙是最近大家问的比较的,今天小编为大家带来"无幻"分享的驯服恐...
  • 准备写个系列,先把flag立上~问题electron-vue默认的配置是单页面应用,但是在这种情况下想实现个窗口页面入口,即同时打开aWin,bWin两个窗口,且aWin窗口展示a.html,bWin窗口展示b.html。复制代码解决方案1....
  • ftp服务器 指定文件夹

    2021-08-14 00:21:11
    ftp服务器 指定文件夹 内容精选换一换本节介绍使用Data Studio时要遵循的安装和配置步骤,以及配置服务器以调试PL/SQL函数的步骤。本章包含如下几节内容:安装Data Studio配置Data Studio设置日志文件创建位置记录...
  • 发布时间:2016-04-11我的世界手机版有很存档玩家可以从网上下载来玩,让游戏更加有趣,不过很玩家不太了解我的世界手机版存档怎么用?存档怎么安装?下面99安卓网小编就来分享我的世界手机版存档的安装使用方法,供...
  • 云服务器 文件夹共享文件夹同步 内容精选换一换扩容云服务器后,通过查看云服务器的规格和各项容量指标验证扩容是否成功。登录华为云“管理控制台”页面。单击服务列表计算弹性云服务器。在弹性云服务器列表中,在待...
  • 服务器文件夹设置密码 内容精选换一换已成功登录Java性能分析。待安装分析辅助软件的服务器已开启sshd。Java性能分析优先选用非交互shell(non-interactive shell)中的JAVA_HOME环境变量所指定的JRE版本运行分析辅助...
  • 远程服务器进入文件夹 内容精选换一换方法一:在VSCode上选择“文件 > 首选项 > 设置”,再选择“工作区”,并在输入框搜索“kunpeng.remote.ssh.machineinfo”,单击“在settings.json中编辑”后生成settings....
  • 服务器文件夹权限设置方法 内容精选换一换当出现如下几种日志时,说明当前用户对当前文件或文件夹没有操作权限。现象1:现象2:现象3:现象4:当前用户对当前文件或文件夹没有操作权限。采用对当前用户可以访问的...
  • static和templates文件夹的区别总体认识static目录templates目录测试在没有导入thymeleaf模板情况下static下的dyk.htmltemplates下的dyk.htmltemplates下的dyk1.html结果导入thymeleaf模板情况下没有使用thymeleaf...
  • java实现文件夹上传

    2021-02-12 14:44:10
    通常情况下,我们在网站上面下载的时候都是单个文件下载,但是在实际的业务场景中,我们经常会遇到客户需要批量下载的场景,还有文件夹的下载场景。与传统业务需求相比,新的业务需求要求更高,难度也更大。但是用户...
  • plus多页签应用模板:element-plus按需引入与动态换肤 vue3.0+ts+element-plus多页签应用模板:如何优雅地使用Svg图标 vue3.0+ts+element-plus多页签应用模板:侧边导航菜单(上) vue3.0+ts+element-plus多页签应用...
  • ftp服务器匿名用户文件夹 内容精选换一换开发过程中,您有任何问题可以在github上提交issue,或者在华为云对象存储服务论坛中发帖求助。接口参考文档详细介绍了每个接口的参数和使用方法。在OBS中,用户操作的基本...
  • 玩家都抱怨钻石太少也太难找,下面小编就给大家讲解一下游戏中哪些地方有钻石,哪些地方数量会比较,一起来看看吧. 毫无疑问,钻石 ...标签:攻略发布时间:2017-06-18小编整理带来了迷你世界恐龙的相关知识,迷你...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 128,016
精华内容 51,206
关键字:

文件夹多页签