php 正则匹配静态资源,Struts2 配置静态资源文件不经过Strut处理(正则匹配)

Struts2框架有两个核心配置文件:struts.xml和Struts2默认属性文件default.properties(在struts2-core-2.3.20.jar中)

default.properties可以通过自己在classpath下写一个struts.properties文件进行定制改写

为什么是struts.properties,这可以看org.apache.struts2.config下的DefaultSettings和PropertiesSettings源码

DefaultSettings.java

public DefaultSettings() {

ArrayList list = new ArrayList();

// stuts.properties, default.properties

try {

list.add(new PropertiesSettings("struts"));

} catch (Exception e) {

log.warn("DefaultSettings: Could not find or error in struts.properties", e);

}

PropertiesSettings.java

public PropertiesSettings(String name) {

URL settingsUrl = ClassLoaderUtil.getResource(name + ".properties", getClass());

if (settingsUrl == null) {

if (LOG.isDebugEnabled()) {

LOG.debug(name + ".properties missing");

}

settings = new LocatableProperties();

return;

}

也可以把你想写在struts.properties的自定义配置写在struts.xml文件下节点中,如果同时都在两个文件配置了,一个相同的项目, 先加载 struts.xml,再加载struts.properties也就是说 struts.properties 是可以覆盖 struts.xml里面的配置的

package org.apache.struts2;

import org.apache.struts2.dispatcher.mapper.CompositeActionMapper;

/**

* This class provides a central location for framework configuration keys

* used to retrieve and store Struts configuration settings.

*/

public final class StrutsConstants {

/** Whether Struts is in development mode or not */

public static final String STRUTS_DEVMODE = "struts.devMode";

/** Whether the localization messages should automatically be reloaded */

public static final String STRUTS_I18N_RELOAD = "struts.i18n.reload";

/** The encoding to use for localization messages */

public static final String STRUTS_I18N_ENCODING = "struts.i18n.encoding";

/** Whether to reload the XML configuration or not */

public static final String STRUTS_CONFIGURATION_XML_RELOAD = "struts.configuration.xml.reload";

/** The URL extension to use to determine if the request is meant for a Struts action */

public static final String STRUTS_ACTION_EXTENSION = "struts.action.extension";

/** Comma separated list of patterns (java.util.regex.Pattern) to be excluded from Struts2-processing */

public static final String STRUTS_ACTION_EXCLUDE_PATTERN = "struts.action.excludePattern";

/** Whether to use the alterative syntax for the tags or not */

public static final String STRUTS_TAG_ALTSYNTAX = "struts.tag.altSyntax";

/** The HTTP port used by Struts URLs */

public static final String STRUTS_URL_HTTP_PORT = "struts.url.http.port";

/** The HTTPS port used by Struts URLs */

public static final String STRUTS_URL_HTTPS_PORT = "struts.url.https.port";

/** The default includeParams method to generate Struts URLs */

public static final String STRUTS_URL_INCLUDEPARAMS = "struts.url.includeParams";

public static final String STRUTS_URL_RENDERER = "struts.urlRenderer";

/** The com.opensymphony.xwork2.ObjectFactory implementation class */

public static final String STRUTS_OBJECTFACTORY = "struts.objectFactory";

public static final String STRUTS_OBJECTFACTORY_ACTIONFACTORY = "struts.objectFactory.actionFactory";

public static final String STRUTS_OBJECTFACTORY_RESULTFACTORY = "struts.objectFactory.resultFactory";

public static final String STRUTS_OBJECTFACTORY_CONVERTERFACTORY = "struts.objectFactory.converterFactory";

public static final String STRUTS_OBJECTFACTORY_INTERCEPTORFACTORY = "struts.objectFactory.interceptorFactory";

public static final String STRUTS_OBJECTFACTORY_VALIDATORFACTORY = "struts.objectFactory.validatorFactory";

public static final String STRUTS_OBJECTFACTORY_UNKNOWNHANDLERFACTORY = "struts.objectFactory.unknownHandlerFactory";

/** The com.opensymphony.xwork2.util.FileManager implementation class */

public static final String STRUTS_FILE_MANAGER_FACTORY = "struts.fileManagerFactory";

/** The com.opensymphony.xwork2.util.fs.FileManager implementation class */

public static final String STRUTS_FILE_MANAGER = "struts.fileManager";

/** The com.opensymphony.xwork2.util.ObjectTypeDeterminer implementation class */

public static final String STRUTS_OBJECTTYPEDETERMINER = "struts.objectTypeDeterminer";

/** The package containing actions that use Rife continuations */

public static final String STRUTS_CONTINUATIONS_PACKAGE = "struts.continuations.package";

/** The org.apache.struts2.config.Configuration implementation class */

public static final String STRUTS_CONFIGURATION = "struts.configuration";

/** The default locale for the Struts application */

public static final String STRUTS_LOCALE = "struts.locale";

/** Whether to use a Servlet request parameter workaround necessary for some versions of WebLogic */

public static final String STRUTS_DISPATCHER_PARAMETERSWORKAROUND = "struts.dispatcher.parametersWorkaround";

/** The org.apache.struts2.views.freemarker.FreemarkerManager implementation class */

public static final String STRUTS_FREEMARKER_MANAGER_CLASSNAME = "struts.freemarker.manager.classname";

@Deprecated

/** Cache Freemarker templates, this cache is managed by struts2,instead of native freemarker cache,set STRUTS_FREEMARKER_MRU_MAX_STRONG_SIZE >0&&STRUTS_FREEMARKER_TEMPLATES_CACHE_UPDATE_DELAY>0*/

public static final String STRUTS_FREEMARKER_TEMPLATES_CACHE = "struts.freemarker.templatesCache";

/** Update freemarker templates cache in seconds*/

public static final String STRUTS_FREEMARKER_TEMPLATES_CACHE_UPDATE_DELAY = "struts.freemarker.templatesCache.updateDelay";

/** Cache model instances at BeanWrapper level */

public static final String STRUTS_FREEMARKER_BEANWRAPPER_CACHE = "struts.freemarker.beanwrapperCache";

/** Maximum strong sizing for MruCacheStorage for freemarker */

public static final String STRUTS_FREEMARKER_MRU_MAX_STRONG_SIZE = "struts.freemarker.mru.max.strong.size";

/** org.apache.struts2.views.velocity.VelocityManager implementation class */

public static final String STRUTS_VELOCITY_MANAGER_CLASSNAME = "struts.velocity.manager.classname";

/** The Velocity configuration file path */

public static final String STRUTS_VELOCITY_CONFIGFILE = "struts.velocity.configfile";

/** The location of the Velocity toolbox */

public static final String STRUTS_VELOCITY_TOOLBOXLOCATION = "struts.velocity.toolboxlocation";

/** List of Velocity context names */

public static final String STRUTS_VELOCITY_CONTEXTS = "struts.velocity.contexts";

/** The directory containing UI templates.  All templates must reside in this directory. */

public static final String STRUTS_UI_TEMPLATEDIR = "struts.ui.templateDir";

/** The default UI template theme */

public static final String STRUTS_UI_THEME = "struts.ui.theme";

/** Token to use to indicate start of theme to be expanded. */

public static final String STRUTS_UI_THEME_EXPANSION_TOKEN = "struts.ui.theme.expansion.token";

/** The maximize size of a multipart request (file upload) */

public static final String STRUTS_MULTIPART_MAXSIZE = "struts.multipart.maxSize";

/** The directory to use for storing uploaded files */

public static final String STRUTS_MULTIPART_SAVEDIR = "struts.multipart.saveDir";

/** Declares the buffer size to be used during streaming multipart content to disk. Used only with {@link org.apache.struts2.dispatcher.multipart.JakartaStreamMultiPartRequest} */

public static final String STRUTS_MULTIPART_BUFFERSIZE = "struts.multipart.bufferSize";

/**

* The org.apache.struts2.dispatcher.multipart.MultiPartRequest parser implementation

* for a multipart request (file upload)

*/

public static final String STRUTS_MULTIPART_PARSER = "struts.multipart.parser";

/** How Spring should autowire.  Valid values are 'name', 'type', 'auto', and 'constructor' */

public static final String STRUTS_OBJECTFACTORY_SPRING_AUTOWIRE = "struts.objectFactory.spring.autoWire";

/** Whether the autowire strategy chosen by STRUTS_OBJECTFACTORY_SPRING_AUTOWIRE is always respected.  Defaults

* to false, which is the legacy behavior that tries to determine the best strategy for the situation.

* @since 2.1.3

*/

public static final String STRUTS_OBJECTFACTORY_SPRING_AUTOWIRE_ALWAYS_RESPECT = "struts.objectFactory.spring.autoWire.alwaysRespect";

/** Whether Spring should use its class cache or not */

public static final String STRUTS_OBJECTFACTORY_SPRING_USE_CLASS_CACHE = "struts.objectFactory.spring.useClassCache";

/** Uses different logic to construct beans, see https://issues.apache.org/jira/browse/WW-4110 */

public static final String STRUTS_OBJECTFACTORY_SPRING_ENABLE_AOP_SUPPORT = "struts.objectFactory.spring.enableAopSupport";

/** Whether or not XSLT templates should not be cached */

public static final String STRUTS_XSLT_NOCACHE = "struts.xslt.nocache";

/** Location of additional configuration properties files to load */

public static final String STRUTS_CUSTOM_PROPERTIES = "struts.custom.properties";

/** Location of additional localization properties files to load */

public static final String STRUTS_CUSTOM_I18N_RESOURCES = "struts.custom.i18n.resources";

/** The org.apache.struts2.dispatcher.mapper.ActionMapper implementation class */

public static final String STRUTS_MAPPER_CLASS = "struts.mapper.class";

/**

* A prefix based action mapper that is capable of delegating to other

* {@link org.apache.struts2.dispatcher.mapper.ActionMapper}s based on the request's prefix

* You can specify different prefixes that will be handled by different mappers

*/

public static final String PREFIX_BASED_MAPPER_CONFIGURATION = "struts.mapper.prefixMapping";

/** Whether the Struts filter should serve static content or not */

public static final String STRUTS_SERVE_STATIC_CONTENT = "struts.serve.static";

/** If static content served by the Struts filter should set browser caching header properties or not */

public static final String STRUTS_SERVE_STATIC_BROWSER_CACHE = "struts.serve.static.browserCache";

/** Allows one to disable dynamic method invocation from the URL */

public static final String STRUTS_ENABLE_DYNAMIC_METHOD_INVOCATION = "struts.enable.DynamicMethodInvocation";

/** Whether slashes in action names are allowed or not */

public static final String STRUTS_ENABLE_SLASHES_IN_ACTION_NAMES = "struts.enable.SlashesInActionNames";

/** Prefix used by {@link CompositeActionMapper} to identify its containing {@link org.apache.struts2.dispatcher.mapper.ActionMapper} class. */

public static final String STRUTS_MAPPER_COMPOSITE = "struts.mapper.composite";

public static final String STRUTS_ACTIONPROXYFACTORY = "struts.actionProxyFactory";

public static final String STRUTS_FREEMARKER_WRAPPER_ALT_MAP = "struts.freemarker.wrapper.altMap";

/** The name of the xwork converter implementation */

public static final String STRUTS_XWORKCONVERTER = "struts.xworkConverter";

public static final String STRUTS_ALWAYS_SELECT_FULL_NAMESPACE = "struts.mapper.alwaysSelectFullNamespace";

/** XWork default text provider */

public static final String STRUTS_XWORKTEXTPROVIDER = "struts.xworkTextProvider";

/** The {@link com.opensymphony.xwork2.LocaleProvider} implementation class */

public static final String STRUTS_LOCALE_PROVIDER = "struts.localeProvider";

/** The name of the parameter to create when mapping an id (used by some action mappers) */

public static final String STRUTS_ID_PARAMETER_NAME = "struts.mapper.idParameterName";

/** The name of the parameter to determine whether static method access will be allowed in OGNL expressions or not */

public static final String STRUTS_ALLOW_STATIC_METHOD_ACCESS = "struts.ognl.allowStaticMethodAccess";

/** The com.opensymphony.xwork2.validator.ActionValidatorManager implementation class */

public static final String STRUTS_ACTIONVALIDATORMANAGER = "struts.actionValidatorManager";

/** The {@link com.opensymphony.xwork2.util.ValueStackFactory} implementation class */

public static final String STRUTS_VALUESTACKFACTORY = "struts.valueStackFactory";

/** The {@link com.opensymphony.xwork2.util.reflection.ReflectionProvider} implementation class */

public static final String STRUTS_REFLECTIONPROVIDER = "struts.reflectionProvider";

/** The {@link com.opensymphony.xwork2.util.reflection.ReflectionContextFactory} implementation class */

public static final String STRUTS_REFLECTIONCONTEXTFACTORY = "struts.reflectionContextFactory";

/** The {@link com.opensymphony.xwork2.util.PatternMatcher} implementation class */

public static final String STRUTS_PATTERNMATCHER = "struts.patternMatcher";

/** The {@link org.apache.struts2.dispatcher.StaticContentLoader} implementation class */

public static final String STRUTS_STATIC_CONTENT_LOADER = "struts.staticContentLoader";

/** The {@link com.opensymphony.xwork2.UnknownHandlerManager} implementation class */

public static final String STRUTS_UNKNOWN_HANDLER_MANAGER = "struts.unknownHandlerManager";

/** Throw RuntimeException when a property is not found, or the evaluation of the espression fails*/

public static final String STRUTS_EL_THROW_EXCEPTION = "struts.el.throwExceptionOnFailure";

/** Logs properties that are not found (very verbose) **/

public static final String STRUTS_LOG_MISSING_PROPERTIES = "struts.ognl.logMissingProperties";

/** Enables caching of parsed OGNL expressions **/

public static final String STRUTS_ENABLE_OGNL_EXPRESSION_CACHE = "struts.ognl.enableExpressionCache";

/** Enables evaluation of OGNL expressions **/

public static final String STRUTS_ENABLE_OGNL_EVAL_EXPRESSION = "struts.ognl.enableOGNLEvalExpression";

/** Disables {@link org.apache.struts2.dispatcher.StrutsRequestWrapper} request attribute value stack lookup (JSTL accessibility) **/

public static final String STRUTS_DISABLE_REQUEST_ATTRIBUTE_VALUE_STACK_LOOKUP = "struts.disableRequestAttributeValueStackLookup";

/** The{@link org.apache.struts2.views.util.UrlHelper} implementation class **/

public static final String STRUTS_URL_HELPER = "struts.view.urlHelper";

/** {@link com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter} **/

public static final String STRUTS_CONVERTER_COLLECTION = "struts.converter.collection";

public static final String STRUTS_CONVERTER_ARRAY = "struts.converter.array";

public static final String STRUTS_CONVERTER_DATE = "struts.converter.date";

public static final String STRUTS_CONVERTER_NUMBER = "struts.converter.number";

public static final String STRUTS_CONVERTER_STRING = "struts.converter.string";

/** Enable handling exceptions by Dispatcher - true by default **/

public static final String STRUTS_HANDLE_EXCEPTION = "struts.handle.exception";

public static final String STRUTS_CONVERTER_PROPERTIES_PROCESSOR = "struts.converter.properties.processor";

public static final String STRUTS_CONVERTER_FILE_PROCESSOR = "struts.converter.file.processor";

public static final String STRUTS_CONVERTER_ANNOTATION_PROCESSOR = "struts.converter.annotation.processor";

public static final String STRUTS_CONVERTER_CREATOR = "struts.converter.creator";

public static final String STRUTS_CONVERTER_HOLDER = "struts..converter.holder";

public static final String STRUTS_EXPRESSION_PARSER = "struts.expression.parser";

/** actions names' whitelist **/

public static final String STRUTS_ALLOWED_ACTION_NAMES = "struts.allowed.action.names";

/** enables action: prefix **/

public static final String STRUTS_MAPPER_ACTION_PREFIX_ENABLED = "struts.mapper.action.prefix.enabled";

/** enables access to actions in other namespaces than current with action: prefix **/

public static final String STRUTS_MAPPER_ACTION_PREFIX_CROSSNAMESPACES = "struts.mapper.action.prefix.crossNamespaces";

public static final String DEFAULT_TEMPLATE_TYPE_CONFIG_KEY = "struts.ui.templateSuffix";

/** Allows override default DispatcherErrorHandler **/

public static final String STRUTS_DISPATCHER_ERROR_HANDLER = "struts.dispatcher.errorHandler";

/** Comma delimited set of excluded classes and package names which cannot be accessed via expressions **/

public static final String STRUTS_EXCLUDED_CLASSES = "struts.excludedClasses";

public static final String STRUTS_EXCLUDED_PACKAGE_NAME_PATTERNS = "struts.excludedPackageNamePatterns";

/** Dedicated services to check if passed string is excluded/accepted **/

public static final String STRUTS_EXCLUDED_PATTERNS_CHECKER = "struts.excludedPatterns.checker";

public static final String STRUTS_ACCEPTED_PATTERNS_CHECKER = "struts.acceptedPatterns.checker";

/** Constant is used to override framework's default excluded patterns **/

public static final String STRUTS_OVERRIDE_EXCLUDED_PATTERNS = "struts.override.excludedPatterns";

public static final String STRUTS_OVERRIDE_ACCEPTED_PATTERNS = "struts.override.acceptedPatterns";

public static final String STRUTS_ADDITIONAL_EXCLUDED_PATTERNS = "struts.additional.excludedPatterns";

public static final String STRUTS_ADDITIONAL_ACCEPTED_PATTERNS = "struts.additional.acceptedPatterns";

}

其中

/** Comma separated list of patterns (java.util.regex.Pattern) to be excluded from Struts2-processing */

public static final String STRUTS_ACTION_EXCLUDE_PATTERN = "struts.action.excludePattern";

保存了不由struts2处理的路径,我们在struts.properties或者struts.xml中配置即可.

struts.action.excludePattern=/dwr/.*,/dwr/test/.*

正则表达式,并非URL匹配地址

1c5a81c2251901555fbe2b952435de21.png

Struts 的详细介绍:请点这里

Struts 的下载地址:请点这里

0b1331709591d260c1c78e86d0c51c18.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489009.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全球数字孪生市场大预测:2025 年的 358 亿美元,年复合增长率(CAGR)高达 37.8%...

来源:云头条 数字孪生市场估计将从2019年的38亿美元猛增到2025年的358亿美元,年复合增长率(CAGR)高达37.8%。推动数字孪生需求增长的几个因素包括:越来越广泛地采用物联网和云计算之类的技术用于实施数字孪生&#xff…

yii3正式版什么时候发布_事业单位联考结束,成绩什么时候发布?合格分数线怎么算?...

今天上午,2020下半年全国事业单位联考笔试结束了。笔试刚刚结束,很多考生问图图有没有此次联考的答案,那肯定得有啊。为了帮助各位考生更好估分,华图教育推出估分系统,各位考生只需点击文末“了解更多”即可参与估分。…

德勤全球智慧城市2.0报告!中国占了世界一半

来源:德勤全球智慧城市新发展全球城市化的进程依然以不可阻挡的趋势向前推进, 到2050年, 接近70%的世界人口将生活在城市。人口大国中国和印度所在的亚洲将成为全球城市化最快的地区。在城市急速扩张的过程中, 先进的技术将帮助城…

大公司里怎样开发和部署前端代码

作者:张云龙链接:https://www.zhihu.com/question/20790576/answer/32602154来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。没人邀请,看到这个问题不错,路过怒答。&#x…

5G产业发展最新进展深度解析(144页PPT)

来源:吴东升本报告对不同区域(全球、美国、中国、日本、欧洲等)的5G产业发展做了深入、全面的分析;对5G产业链和生态链以及主要产业应用状况做了系统盘点分析;对5G技术进展、投资环境和投资机会等也做了详细梳理。是5G…

php layui table,Layui table组件相关介绍

出现的问题:1、使用 Layui 官方提供的 【转换静态表格】 方式初始化加载时报 id 找不到的错误(自己的锅)2、传递参数问题使用的 table 加载刷新方案有一个页面,左侧是一个 tree,右侧是一个 table,默认 table 加载全数据&#xff0…

存内计算能否成为下一代AI芯片的关键

来源:半导体行业观察随着人工智能的落地和大规模应用,AI芯片也成为了常见的芯片品类。AI芯片相比传统芯片来说,主要的竞争优势就在于高算力和高能效比。高算力是指能够比传统芯片更快地完成AI计算,而高能效比则是指能比传统芯片用…

[转载]sql server 分布式查询

--用openrowset连接远程SQL或插入数据 --如果只是临时访问,可以直接用openrowset--查询示例select * from openrowset(SQLOLEDB,sql服务器名;用户名;密码,数据库名.dbo.表名)在跨库查询时需要启用Ad Hoc Distributed Queries启用Ad Hoc Distributed Queries:exec sp…

matlab画半透明矩形,使用matlab画半透明椭圆

先上最终效果图:本来是想直接用scatter和alpha来画的,结果在尝试以下代码后,发现无法显示透明效果scatter(rand(1000,1),rand(1000,1), ‘filled‘);alpha(0.5)具体原因可以参考stackoverflow(http://stackoverflow.com/questions/6366404/se…

2019全球信息通信业热点回顾

来源: 人民邮电报编辑:于莉莉 监制:郭川时光飞逝,倏忽一年。回首2019年,全球电信业最大的热点当属5G。这一年,5G在经过数年酝酿后终于商用,无论是运营商还是政府,都对5G给予了空前的…

SSIS添加分区-动态

主要参考:动态分区 一、前提准备: 1、一个日期存储过程,注意代码可以得到一个月中的最后一天,最终生成时间维度。 USE [DrugDW] GO /****** Object: StoredProcedure [dbo].[PROC_DATETIME] Script Date: 2/28 星期二 14:16:4…

canvas 实现图片局部模糊_小技巧!H5使用Html2Canvas实现自动截屏(下)

上文写到使用html2Canvas实现截屏。上次留了一个问题,如果当前dom元素对象比较大,比如包含一个比较大的图片等,在将dom序列化成字符串时,极易导致字符串超长。对于超长的内容,后台程序将获取不到参数,那么怎…

getjson php 函数,PHP读写JSON文件以及jQuery的getJSON函数用法

在写的音乐网站中用到保存用户歌单功能,即用户登录后可以显示该用户之前保存的歌单,开始的思路是使用数据库来保存,后来为了方便于是考虑使用json数据格式来保存歌单,这样也和播放器插件的json参数比较契合.读取JSON文件<?php $filename "chation99.json";$json…

悬而未决的AI竞赛:全球企业人工智能发展现状

来源&#xff1a;德勤,智东西随着企业领袖逐渐将人工智能视为下一轮经济大扩张的重要推动力量&#xff0c;一种担忧错失良机的情绪在全球范围内日益蔓延。许多国家纷纷制定人工智能战略&#xff0c;通过资金投入、政策激励、人才发展和风险管理推进技术能力的发展。人工智能对于…

Science揭示:身体如何应对细菌的“群体感应”

电子显微镜下的假单胞菌细菌。图片来源&#xff1a;MPIIB / Volker Brinkmann来源&#xff1a;中国生物技术网众所周知&#xff0c;细菌感染并不会马上导致疾病&#xff0c;只有在它们大量出现时才会对身体造成威胁。近日&#xff0c;发表在《Science》上的一项研究中&#xff…

百度:2020年十大科技趋势

来源&#xff1a;6G俱乐部图片来源&#xff1a;百度2019&#xff0c;关于科技的鲜活记忆&#xff0c;正在快速变成时间洪流的一部分&#xff0c;也变成了我们读懂未来的钥匙。过去一年中&#xff0c;多技术融合正在加快&#xff0c;AI开发的门槛在迅速降低&#xff0c;产业智能…

美国计划让“人工智能”去搜寻外星人!

来源&#xff1a;科学解码据美国太空网近日报道&#xff0c;美国国家航空航天局&#xff08;NASA&#xff09;官员称&#xff0c;他们希望利用人工智能&#xff08;例如机器学习&#xff09;技术&#xff0c;分析大型望远镜等收集的数据&#xff0c;从而帮助搜寻外星生命&#…

三宝机器人怎么充电_巨人通力导致吉祥三宝+36号故障怪现象的又一因素

想必大家都有过这样的经历&#xff1a;在电梯故障频繁出现时&#xff0c;明明可以判断是哪里的问题&#xff0c;但事实却是让你感觉不可思议&#xff0c;并且排查过程颇为周折。今天和大家分享一下我经历的巨人通力GPS30K电梯出现的吉祥三宝故障的排查过程。下图为电梯控制柜铭…

《自然》展望2020年重大科学事件!中国有两个大计划安排上了

来源&#xff1a;科技日报图片来源&#xff1a;Nature官网&#xff08;不包括标注了来源的图片&#xff09;“千门万户曈曈日&#xff0c;总把新桃换旧符”&#xff01;在辞旧迎新之际&#xff0c;我们除了要埋头梳理过去一年的悲欢得失&#xff0c;也应抬头眺望新一年的星辰大…

vue aplayer 进度条无法拖动_Vue-rideo-player视频播放插件的使用

***** git项目地址&#xff1a; https://github.com/surmon-china/vue-video-player***** 参考文章&#xff1a; https://www.jianshu.com/p/532fc1d8c90c使用安装&#xff1a; npm install vue-video-player --save2. 在main.js入口文件中引入import VideoPlayer from vue-vid…