问题描述
我在 IIS 10 上运行静态网站。
我想在站点级别禁用 brotli httpCompression
以验证我的站点级别 httpCompression
配置是否确实有效,并且无论全局 {{ 1}} 文件。
据我所知,通过使用applicationHost.config
,我删除了所有全局规则,并添加了我要应用于网站的本地规则。因此,如果我使用 <clear />
然后添加 <clear />
这意味着网站应该只使用 gzip 压缩。
但实际上,它仍然使用brotli。即使我手动删除缓存(IIS压缩缓存和浏览器缓存)并重新启动服务器。
这是我的<scheme name="gzip" ... />
:
C:\Windows\System32\inetsrv\config\applicationHost.config
这是我的<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<configSections>
<sectionGroup name="system.applicationHost">
<section name="applicationPools" allowDeFinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="configHistory" allowDeFinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="customMetadata" allowDeFinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="listenerAdapters" allowDeFinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="log" allowDeFinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="serviceAutoStartProviders" allowDeFinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="sites" allowDeFinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="webLimits" allowDeFinition="AppHostOnly" overrideModeDefault="Deny" />
</sectionGroup>
<sectionGroup name="system.webServer">
<section name="asp" overrideModeDefault="Deny" />
<section name="caching" overrideModeDefault="Allow" />
<section name="cgi" overrideModeDefault="Deny" />
<section name="defaultDocument" overrideModeDefault="Allow" />
<section name="directorybrowse" overrideModeDefault="Allow" />
<section name="fastCgi" allowDeFinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="globalModules" allowDeFinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="handlers" overrideModeDefault="Deny" />
<section name="httpCompression" allowDeFinition="Everywhere" overrideModeDefault="Allow" />
<section name="httpErrors" overrideModeDefault="Allow" />
<section name="httpLogging" overrideModeDefault="Deny" />
<section name="httpProtocol" overrideModeDefault="Allow" />
<section name="httpRedirect" overrideModeDefault="Allow" />
<section name="httpTracing" overrideModeDefault="Deny" />
<section name="isapiFilters" allowDeFinition="MachinetoApplication" overrideModeDefault="Deny" />
<section name="modules" allowDeFinition="MachinetoApplication" overrideModeDefault="Deny" />
<section name="applicationInitialization" allowDeFinition="MachinetoApplication" overrideModeDefault="Allow" />
<section name="odbcLogging" overrideModeDefault="Deny" />
<sectionGroup name="security">
<section name="access" overrideModeDefault="Deny" />
<section name="applicationDependencies" overrideModeDefault="Deny" />
<sectionGroup name="authentication">
<section name="anonymousAuthentication" overrideModeDefault="Deny" />
<section name="basicAuthentication" overrideModeDefault="Deny" />
<section name="clientCertificateMappingAuthentication" overrideModeDefault="Deny" />
<section name="digestAuthentication" overrideModeDefault="Deny" />
<section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Deny" />
<section name="windowsAuthentication" overrideModeDefault="Deny" />
</sectionGroup>
<section name="authorization" overrideModeDefault="Allow" />
<section name="ipSecurity" overrideModeDefault="Deny" />
<section name="dynamicIpSecurity" overrideModeDefault="Deny" />
<section name="isapiCgiRestriction" allowDeFinition="AppHostOnly" overrideModeDefault="Deny" />
<section name="requestfiltering" overrideModeDefault="Allow" />
</sectionGroup>
<section name="serverRuntime" overrideModeDefault="Deny" />
<section name="serverSideInclude" overrideModeDefault="Deny" />
<section name="staticContent" overrideModeDefault="Allow" />
<sectionGroup name="tracing">
<section name="traceFailedRequests" overrideModeDefault="Allow" />
<section name="traceProviderDeFinitions" overrideModeDefault="Deny" />
</sectionGroup>
<section name="urlCompression" overrideModeDefault="Allow" />
<section name="validation" overrideModeDefault="Allow" />
<sectionGroup name="webdav">
<section name="globalSettings" overrideModeDefault="Deny" />
<section name="authoring" overrideModeDefault="Deny" />
<section name="authoringRules" overrideModeDefault="Deny" />
</sectionGroup>
<section name="webSocket" overrideModeDefault="Deny" />
<sectionGroup name="externalCache">
<section name="diskCache" overrideModeDefault="Allow" />
</sectionGroup>
<section name="proxy" overrideModeDefault="Deny" allowDeFinition="AppHostOnly" />
<section name="diskCache" overrideModeDefault="Deny" allowDeFinition="AppHostOnly" />
<sectionGroup name="rewrite">
<section name="globalRules" overrideModeDefault="Deny" allowDeFinition="AppHostOnly" />
<section name="rules" overrideModeDefault="Allow" />
<section name="outboundRules" overrideModeDefault="Allow" />
<section name="providers" overrideModeDefault="Allow" />
<section name="rewriteMaps" overrideModeDefault="Allow" />
<section name="allowedServerVariables" overrideModeDefault="Deny" />
</sectionGroup>
</sectionGroup>
<sectionGroup name="system.ftpServer">
<section name="log" overrideModeDefault="Deny" allowDeFinition="AppHostOnly" />
<section name="firewallSupport" overrideModeDefault="Deny" allowDeFinition="AppHostOnly" />
<section name="caching" overrideModeDefault="Deny" allowDeFinition="AppHostOnly" />
<section name="providerDeFinitions" overrideModeDefault="Deny" />
<sectionGroup name="security">
<section name="ipSecurity" overrideModeDefault="Deny" />
<section name="requestfiltering" overrideModeDefault="Deny" />
<section name="authorization" overrideModeDefault="Deny" />
<section name="authentication" overrideModeDefault="Deny" />
</sectionGroup>
<section name="serverRuntime" overrideModeDefault="Deny" allowDeFinition="AppHostOnly" />
</sectionGroup>
<section name="webFarms" overrideModeDefault="Deny" allowDeFinition="AppHostOnly" />
</configSections>
<configProtectedData>
<providers>
<add name="IISCngProvider" type="Microsoft.ApplicationHost.CngProtectedConfigurationProvider" description="Uses Win32 Crypto CNG to encrypt and decrypt" keyContainerName="iisCngConfigurationKey" useMachineContainer="true" />
<add name="IISWASOnlyCngProvider" type="Microsoft.ApplicationHost.CngProtectedConfigurationProvider" description="(WAS Only) Uses Win32 Crypto CNG to encrypt and decrypt" keyContainerName="iisCngWasKey" useMachineContainer="true" />
</providers>
</configProtectedData>
<system.applicationHost>
<applicationPools>
<add name="DefaultAppPool" />
<add name="BWW" />
<applicationPoolDefaults managedRuntimeVersion="v4.0">
<processModel identityType="ApplicationPoolIdentity" loadUserProfile="true" setProfileEnvironment="false" />
</applicationPoolDefaults>
</applicationPools>
<customMetadata />
<listenerAdapters>
<add name="http" />
</listenerAdapters>
<log>
<centralBinaryLogFile enabled="true" directory="%systemDrive%\inetpub\logs\LogFiles" />
<centralW3CLogFile enabled="true" directory="%systemDrive%\inetpub\logs\LogFiles" />
</log>
<sites>
<site name="Default Web Site" id="1" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="%systemDrive%\inetpub\wwwroot" />
</application>
<bindings>
<binding protocol="https" bindinginformation="*:8585:privat" sslFlags="0" />
</bindings>
<traceFailedRequestsLogging enabled="true" />
</site>
<site name="BWW" id="2" serverAutoStart="true">
<application path="/" applicationPool="BWW">
<virtualDirectory path="/" physicalPath="C:\Users\maxim\OneDrive\Documents\dist" userName="maxim" password="[enc:IISCngProvider:Yd3HfOPpgLt0275jDLCqSJ+elx5f0pFez1NZ2Xiy4ips8kgq/hOHdO7EbBNvLkkuvkxcEu7F/6pbfWPlbbPAunzzrMEsdWSuTamrYZkC+p8=:enc]" />
</application>
<bindings>
<binding protocol="http" bindinginformation="*:3080:" />
</bindings>
</site>
<siteDefaults>
<logFile logFormat="W3C" directory="%systemDrive%\inetpub\logs\LogFiles" />
<traceFailedRequestsLogging directory="%systemDrive%\inetpub\logs\FailedReqLogFiles" />
</siteDefaults>
<applicationDefaults applicationPool="DefaultAppPool" />
<virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>
<webLimits />
</system.applicationHost>
<system.webServer>
<asp />
<caching enabled="true" enableKernelCache="true">
</caching>
<cgi />
<defaultDocument enabled="true">
<files>
<add value="Default.htm" />
<add value="Default.asp" />
<add value="index.htm" />
<add value="index.html" />
<add value="iisstart.htm" />
</files>
</defaultDocument>
<directorybrowse enabled="false" />
<fastCgi />
<globalModules>
<add name="HttpLoggingModule" image="%windir%\System32\inetsrv\loghttp.dll" />
<add name="UriCacheModule" image="%windir%\System32\inetsrv\cachuri.dll" />
<add name="FileCacheModule" image="%windir%\System32\inetsrv\cachfile.dll" />
<add name="TokenCacheModule" image="%windir%\System32\inetsrv\cachtokn.dll" />
<add name="HttpCacheModule" image="%windir%\System32\inetsrv\cachhttp.dll" />
<add name="StaticCompressionModule" image="%windir%\System32\inetsrv\compstat.dll" />
<add name="DefaultDocumentModule" image="%windir%\System32\inetsrv\defdoc.dll" />
<add name="DirectoryListingModule" image="%windir%\System32\inetsrv\dirlist.dll" />
<add name="ProtocolSupportModule" image="%windir%\System32\inetsrv\protsup.dll" />
<add name="StaticFileModule" image="%windir%\System32\inetsrv\static.dll" />
<add name="AnonymousAuthenticationModule" image="%windir%\System32\inetsrv\authanon.dll" />
<add name="BasicAuthenticationModule" image="%windir%\System32\inetsrv\authbas.dll" />
<add name="WindowsAuthenticationModule" image="%windir%\System32\inetsrv\authsspi.dll" />
<add name="requestfilteringModule" image="%windir%\System32\inetsrv\modrqflt.dll" />
<add name="CustomErrorModule" image="%windir%\System32\inetsrv\custerr.dll" />
<add name="CustomLoggingModule" image="%windir%\System32\inetsrv\logcust.dll" />
<add name="TracingModule" image="%windir%\System32\inetsrv\iisetw.dll" />
<add name="FailedRequestsTracingModule" image="%windir%\System32\inetsrv\iisfreb.dll" />
<add name="RequestMonitorModule" image="%windir%\System32\inetsrv\iisreqs.dll" />
<add name="ApplicationRequestRouting" image="%ProgramFiles%\IIS\Application Request Routing\requestRouter.dll" />
<add name="RewriteModule" image="%systemRoot%\system32\inetsrv\rewrite.dll" />
<add name="DynamicCompressionModule" image="%windir%\System32\inetsrv\compdyn.dll" />
</globalModules>
<handlers accesspolicy="Read,Script">
<add name="TRACEVerbHandler" path="*" verb="TRACE" modules="ProtocolSupportModule" requireAccess="None" />
<add name="OPTIONsverbHandler" path="*" verb="OPTIONS" modules="ProtocolSupportModule" requireAccess="None" />
<add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" />
</handlers>
<httpCompression directory="%systemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="br" dll="%ProgramFiles%\IIS\IIS Compression\iisbrotli.dll" />
<scheme name="gzip" dll="%ProgramFiles%\IIS\IIS Compression\iiszlib.dll" />
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="application/atom+xml" enabled="true" />
<add mimeType="application/xaml+xml" enabled="true" />
<add mimeType="image/svg+xml" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="*/*" enabled="false" />
</dynamicTypes>
</httpCompression>
<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">
<error statusCode="401" prefixLanguageFilePath="%systemDrive%\inetpub\custerr" path="401.htm" />
<error statusCode="403" prefixLanguageFilePath="%systemDrive%\inetpub\custerr" path="403.htm" />
<error statusCode="404" prefixLanguageFilePath="%systemDrive%\inetpub\custerr" path="404.htm" />
<error statusCode="405" prefixLanguageFilePath="%systemDrive%\inetpub\custerr" path="405.htm" />
<error statusCode="406" prefixLanguageFilePath="%systemDrive%\inetpub\custerr" path="406.htm" />
<error statusCode="412" prefixLanguageFilePath="%systemDrive%\inetpub\custerr" path="412.htm" />
<error statusCode="431" prefixLanguageFilePath="%systemDrive%\inetpub\custerr" path="431.htm" />
<error statusCode="500" prefixLanguageFilePath="%systemDrive%\inetpub\custerr" path="500.htm" />
<error statusCode="501" prefixLanguageFilePath="%systemDrive%\inetpub\custerr" path="501.htm" />
<error statusCode="502" prefixLanguageFilePath="%systemDrive%\inetpub\custerr" path="502.htm" />
</httpErrors>
<httpLogging dontLog="false" />
<httpProtocol>
<customHeaders>
<clear />
</customHeaders>
<redirectHeaders>
<clear />
</redirectHeaders>
</httpProtocol>
<httpRedirect />
<httpTracing>
</httpTracing>
<isapiFilters />
<modules>
<add name="BasicAuthenticationModule" lockItem="true" />
<add name="HttpLoggingModule" lockItem="true" />
<add name="HttpCacheModule" lockItem="true" />
<add name="StaticCompressionModule" lockItem="true" />
<add name="DefaultDocumentModule" lockItem="true" />
<add name="DirectoryListingModule" lockItem="true" />
<add name="ProtocolSupportModule" lockItem="true" />
<add name="StaticFileModule" lockItem="true" />
<add name="AnonymousAuthenticationModule" lockItem="true" />
<add name="WindowsAuthenticationModule" lockItem="true" />
<add name="requestfilteringModule" lockItem="true" />
<add name="CustomErrorModule" lockItem="true" />
<add name="CustomLoggingModule" lockItem="true" />
<add name="FailedRequestsTracingModule" lockItem="true" />
<add name="ApplicationRequestRouting" />
<add name="RewriteModule" />
<add name="DynamicCompressionModule" lockItem="true" />
</modules>
<odbcLogging />
<security>
<access sslFlags="None" />
<applicationDependencies />
<authentication>
<anonymousAuthentication enabled="true" userName="IUSR" />
<basicAuthentication enabled="false" />
<clientCertificateMappingAuthentication />
<digestAuthentication />
<iisClientCertificateMappingAuthentication />
<windowsAuthentication enabled="false" authPersistNonNTLM="true">
<providers>
<add value="Negotiate" />
<add value="NTLM" />
</providers>
</windowsAuthentication>
</authentication>
<authorization />
<ipSecurity />
<isapiCgiRestriction />
<requestfiltering>
<fileExtensions allowUnlisted="true" applyToWebDAV="true" />
<verbs allowUnlisted="true" applyToWebDAV="true" />
<hiddenSegments applyToWebDAV="true">
<add segment="web.config" />
</hiddenSegments>
</requestfiltering>
</security>
<serverSideInclude />
<staticContent lockAttributes="isDocFooterFileName">
<mimeMap fileExtension=".323" mimeType="text/h323" />
<!-- ... and so on -->
</staticContent>
<tracing>
<traceFailedRequests />
<traceProviderDeFinitions>
<add name="WWW Server" guid="{3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}">
<areas>
<clear />
<add name="Authentication" value="2" />
<add name="Security" value="4" />
<add name="Filter" value="8" />
<add name="StaticFile" value="16" />
<add name="CGI" value="32" />
<add name="Compression" value="64" />
<add name="Cache" value="128" />
<add name="RequestNotifications" value="256" />
<add name="Module" value="512" />
<add name="FastCGI" value="4096" />
<add name="WebSocket" value="16384" />
<add name="RequestRouting" value="2048" />
<add name="Rewrite" value="1024" />
</areas>
</add>
<add name="ASP" guid="{06b94d9a-b15e-456e-a4ef-37c984a2cb4b}">
<areas>
<clear />
</areas>
</add>
<add name="ISAPI Extension" guid="{a1c2040e-8840-4c31-ba11-9871031a19ea}">
<areas>
<clear />
</areas>
</add>
</traceProviderDeFinitions>
</tracing>
<urlCompression />
<validation />
<diskCache>
<compression>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
</compression>
</diskCache>
<proxy enabled="true" />
</system.webServer>
<location path="Default Web Site">
<system.webServer>
<security>
<access sslFlags="None" />
</security>
</system.webServer>
</location>
<webFarms>
<applicationRequestRouting>
<hostAffinityProviderList>
<add name="Microsoft.Web.Arr.HostNameRoundRobin" />
</hostAffinityProviderList>
</applicationRequestRouting>
</webFarms>
<location path="" overrideMode="Allow">
<system.webServer>
</system.webServer>
</location>
<location path="" overrideMode="Deny">
<system.webServer>
<serverRuntime />
</system.webServer>
</location>
</configuration>
:
Web.config
我尝试过的:
-
使用
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <!-- You have to manually enable Windows Feature "World Wide Web Services\Performance\Static Content Compression" and "Dynamic Content Compression" --> <!-- Also,install https://www.iis.net/downloads/microsoft/iis-compression --> <httpCompression directory="%systemDrive%\inetpub\temp\IIS Temporary Compressed Files" minFileSizeforComp="1" staticCompressionIgnoreHitFrequency="true"> <clear /> <!-- <scheme name="br" dll="%ProgramFiles%\IIS\IIS Compression\iiszlib.dll" doStaticCompression="false" doDynamicCompression="false"/> --> <scheme name="gzip" dll="%ProgramFiles%\IIS\IIS Compression\iiszlib.dll" doStaticCompression="true" doDynamicCompression="true" staticCompressionLevel="10" dynamicCompressionLevel="10" /> <dynamicTypes> <!-- We need to enable dynamic compresssion even though we don't serve dynamic content,because IIS seems to consider small files dynamic. This happened to our account.css file --> <clear /> <add mimeType="*/*" enabled="true" /> </dynamicTypes> <staticTypes> <clear /> <add mimeType="*/*" enabled="true" /> </staticTypes> </httpCompression> <!-- You have to manually install https://www.iis.net/downloads/microsoft/application-request-routing and https://www.iis.net/downloads/microsoft/url-rewrite; Then go to IIS -> URL Rewrite -> Add Rules and attempt to create reverse proxy rule,it'll prompt you for some permission and you have to allow it,then cancel everything,no need to create rules manually --> <rewrite> <rules> <rule name="ReverseProxyS3" stopProcessing="true"> <match url="^s3/(.*)$" /> <action type="Rewrite" url="https://bla-bla.bla.bla.amazonaws.com/{R:1}" /> </rule> <rule name="bla/status" stopProcessing="true"> <match url="^bla/status$" /> <action type="Customresponse" statusCode="200" statusReason="ok" statusDescription="ok" /> </rule> </rules> </rewrite> <staticContent> <mimeMap fileExtension=".webmanifest" mimeType="application/manifest+json" /> <mimeMap fileExtension=".properties" mimeType="application/octet-stream" /> </staticContent> <tracing> <traceFailedRequests> <add path="*"> <traceAreas> <add provider="ASP" verbosity="Verbose" /> <add provider="ISAPI Extension" verbosity="Verbose" /> <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,FastCGI,WebSocket,RequestRouting,Rewrite" verbosity="Verbose" /> </traceAreas> <failureDeFinitions statusCodes="100-999" /> </add> </traceFailedRequests> </tracing> </system.webServer> <location path="index.html"> <system.webServer> <staticContent> <clientCache cacheControlMode="disableCache" cacheControlMaxAge="0.00:00:00" /> </staticContent> <httpProtocol> <customHeaders> <add name="Cache-Control" value="no-cache,no-store,must-revalidate" /> <add name="Pragma" value="no-cache" /> <add name="Expires" value="-1" /> </customHeaders> </httpProtocol> </system.webServer> </location> <location path="account/login/index.html"> <system.webServer> <staticContent> <clientCache cacheControlMode="disableCache" cacheControlMaxAge="0.00:00:00" /> </staticContent> <httpProtocol> <customHeaders> <add name="Cache-Control" value="no-cache,must-revalidate" /> <add name="Pragma" value="no-cache" /> <add name="Expires" value="-1" /> </customHeaders> </httpProtocol> </system.webServer> </location> <location path="account/forgot-password/index.html"> <system.webServer> <staticContent> <clientCache cacheControlMode="disableCache" cacheControlMaxAge="0.00:00:00" /> </staticContent> <httpProtocol> <customHeaders> <add name="Cache-Control" value="no-cache,must-revalidate" /> <add name="Pragma" value="no-cache" /> <add name="Expires" value="-1" /> </customHeaders> </httpProtocol> </system.webServer> </location> <location path="account/signup/index.html"> <system.webServer> <staticContent> <clientCache cacheControlMode="disableCache" cacheControlMaxAge="0.00:00:00" /> </staticContent> <httpProtocol> <customHeaders> <add name="Cache-Control" value="no-cache,must-revalidate" /> <add name="Pragma" value="no-cache" /> <add name="Expires" value="-1" /> </customHeaders> </httpProtocol> </system.webServer> </location> <location path="account/activate/index.html"> <system.webServer> <staticContent> <clientCache cacheControlMode="disableCache" cacheControlMaxAge="0.00:00:00" /> </staticContent> <httpProtocol> <customHeaders> <add name="Cache-Control" value="no-cache,must-revalidate" /> <add name="Pragma" value="no-cache" /> <add name="Expires" value="-1" /> </customHeaders> </httpProtocol> </system.webServer> </location> </configuration>
-
使用
<section name="httpCompression" allowDeFinition="Everywhere" overrideModeDefault="Allow" />
-
在两次尝试之间运行
<location path="" overrideMode="Allow"> <!-- ... --> </location> <location path="" overrideMode="Allow"> <!-- ... --> </location>
,以及在 IIS 中单击“重新启动” -
net stop was /y && net start w3svc
- 明确禁用 brotli -
用
<scheme name="br" dll="%ProgramFiles%\IIS\IIS Compression\iiszlib.dll" doStaticCompression="false" doDynamicCompression="false"/>
中的空标签<httpCompression>...<httpCompression/>
替换<httpCompression />
部分。还尝试从applicationHost.config
中完全删除<httpCompression />
部分。在这两种情况下,都发生了压缩,即使它是在applicationHost.config
文件中配置的。
也许我的覆盖权限有问题?
此外,如果我从 Web.config
中完全删除 httpCompression
部分 - IIS 停止压缩 Web.config
和 manifest.webmanifest
文件,因此我认为 .png
确实有效.但不知道为什么 <add mimeType="*/*" enabled="true" />
不起作用...是设计使然吗?...
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)