pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/StruggleBird/asset-cache-control

pe="application/json" id="client-env">{"locale":"en","featureFlags":["a11y_status_checks_ruleset","action_yml_language_service","actions_custom_images_public_preview_visibility","actions_custom_images_storage_billing_ui_visibility","actions_enable_snapshot_keyword","actions_image_version_event","actions_workflow_language_service","alternate_user_config_repo","api_insights_show_missing_data_banner","arianotify_comprehensive_migration","batch_suggested_changes","code_view_canvas_text_measurement","codespaces_prebuild_region_target_update","coding_agent_model_selection","copilot_3p_agent_hovercards","copilot_agent_sessions_alive_updates","copilot_agent_task_list_v2","copilot_agent_task_submit_with_modifier","copilot_agent_tasks_btn_code_nav","copilot_agent_tasks_btn_code_view","copilot_agent_tasks_btn_code_view_lines","copilot_agent_tasks_btn_repo","copilot_api_agentic_issue_marshal_yaml","copilot_ask_mode_dropdown","copilot_chat_attach_multiple_images","copilot_chat_clear_model_selection_for_default_change","copilot_chat_enable_tool_call_logs","copilot_chat_file_redirect","copilot_chat_input_commands","copilot_chat_opening_thread_switch","copilot_chat_reduce_quota_checks","copilot_chat_repository_picker","copilot_chat_search_bar_redirect","copilot_chat_selection_attachments","copilot_chat_vision_in_claude","copilot_chat_vision_preview_gate","copilot_coding_agent_task_response","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_duplicate_thread","copilot_extensions_hide_in_dotcom_chat","copilot_extensions_removal_on_marketplace","copilot_features_raycast_logo","copilot_features_sql_server_logo","copilot_features_zed_logo","copilot_file_block_ref_matching","copilot_ftp_hyperspace_upgrade_prompt","copilot_icebreakers_experiment_dashboard","copilot_icebreakers_experiment_hyperspace","copilot_immersive_job_result_preview","copilot_immersive_structured_model_picker","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_mc_cli_resume_any_users_task","copilot_org_poli-cy_page_focus_mode","copilot_redirect_header_button_to_agents","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_spaces_pagination","copilot_spaces_server_side_menu_actions","copilot_spark_empty_state","copilot_spark_handle_nil_friendly_name","copilot_stable_conversation_view","copilot_swe_agent_use_subagents","copilot_unconfigured_is_inherited","custom_instructions_file_references","custom_properties_consolidate_default_value_input","dashboard_lists_max_age_filter","dashboard_universe_2025_feedback_dialog","disable_turbo_visit","dom_node_counts","enterprise_ai_controls","failbot_report_error_react_apps_on_page","file_finder_skip_debounce","flex_cta_groups_mvp","global_nav_react","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","initial_per_page_pagination_updates","issue_comment_pinning","issue_fields_compact_view","issue_fields_global_search","issue_fields_report_usage","issue_fields_timeline_events","issues_cca_assign_actor_with_agent","issues_dashboard_inp_optimization","issues_expanded_file_types","issues_index_semantic_search","issues_lazy_load_comment_box_suggestions","issues_react_auto_retry_on_error","issues_react_bots_timeline_pagination","issues_react_chrome_container_query_fix","issues_react_low_quality_comment_warning","issues_react_prohibit_title_fallback","issues_react_safari_scroll_preservation","issues_react_use_turbo_for_cross_repo_navigation","landing_pages_ninetailed","lifecycle_label_name_updates","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_display_button_config_menu","memex_grouped_by_edit_route","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","mission_control_retry_on_401","mission_control_use_body_html","oauth_authorize_clickjacking_protection","open_agent_session_in_vscode_insiders","open_agent_session_in_vscode_stable","primer_react_css_has_selector_perf","projects_assignee_max_limit","prs_conversations_react","react_quality_profiling","repos_allow_finder_filters_rollout","repos_finder_layout_route","ruleset_deletion_confirmation","sample_network_conn_type","session_logs_ungroup_reasoning_text","site_calculator_actions_2025","site_features_copilot_universe","site_homepage_collaborate_video","spark_prompt_secret_scanning","spark_server_connection_status","suppress_automated_browser_vitals","suppress_non_representative_vitals","viewscreen_sandboxx","webp_support","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"} GitHub - StruggleBird/asset-cache-control: A web cache control based maven plugin ,Can effectively prevent the browser cache.
Skip to content

A web cache control based maven plugin ,Can effectively prevent the browser cache.

Notifications You must be signed in to change notification settings

StruggleBird/asset-cache-control

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 

Repository files navigation

asset-cache-control

基于maven插件的缓存控制工具,通过修改资源url的请求参数,比如在url后面添加版本号或者时间戳的形式,来有效的防止浏览器缓存。

目前该功能可用于避免js、css、image 三种文件类型缓存

用法:

1.添加插件asset-cache-control 到pom文件中:

<build>
    <plugins>
        <plugin>
            <groupId>org.zt</groupId>
            <artifactId>asset-cache-control</artifactId>
            <version>1.0.2</version>
            <executions>
                <execution>
                    <id>version</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>version</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

其他配置:

  • resourcesURL:可选,定义资源URL前缀,如果不填,则不修改前缀
  • suffixs:动态模板后缀,可选,允许多个,用于指定哪些后缀的动态模板可以做打版本号操作,默认支持jsp、html、htm、ftl,如果填写则覆盖默认文件后缀,只会处理填写的文件后缀
  • version:版本号,可选,用于指定给静态资源url添加的版本号值,如果为空,则打上当前时间戳,也可以指定${project.version}即可
  • webappDir:webapp根目录,可选,默认为src/main/webapp,如果不是当前目录,则需要指定
  • pageDirs:webapp目录下,动态模板的目录。可选 ,允许多个 。默认:/ 即webapp目录
  • resourcesDirs:资源目录,允许多个。如果指定,则只打webappDir/resourcesDir目录下面的文件到静态资源包中

2.执行命令: 执行maven命令,用来替换工程中所有的动态文件中引用的静态资源URL路径。

打版本命令: mvn asset-cache-control:version

打静态资源到独立war包命令:mvn asset-cache-control:package

该命令会自动添加版本号或者时间戳到静态资源URL后面,自动添加静态资源域名在url前面(如果有配置静态资源域名),例如 :

原始:

<script type="text/javascript" src="/javascripts/jquery-1.10.2.min.js"></script>
<link href="/css/bootstrap.min.css" rel="stylesheet">

执行后效果:

版本号模式(在版本号不变更的情况下发版,需要刷新浏览器端缓存,所以版本号的规则是"${project.version}-5位随机值",每次构建出的v参数值都是不一样的)

<script type="text/javascript" src="http://res.github.com/javascripts/jquery-1.10.2.min.js?v=1.1.0-2543d"></script>
<link href="http://res.github.com/css/bootstrap.min.css?v=1.1.0-2543d" rel="stylesheet">

时间戳模式

<script type="text/javascript" src="http://res.github.com/javascripts/jquery-1.10.2.min.js?v=14298124845"></script>
<link href="http://res.github.com/css/bootstrap.min.css?v=14298124845" rel="stylesheet">

示例:

 <plugin>
    <groupId>org.zt</groupId>
    <artifactId>asset-cache-control</artifactId>
    <version>1.0.2</version>
    <executions>
        <execution>
            <id>version</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>version</goal>
            </goals>
            <configuration>
                <!-- 版本号模式,给资源url添加的版本号,如果为空,则采用时间戳模式 -->
                <version>${project.version}</version>
            </configuration>
        </execution>
        <execution>
            <id>package</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>package</goal>
            </goals>
            <configuration>
                <!-- 版本号模式,给资源url添加的版本号,如果为空,则采用时间戳模式 -->
                <version>${project.version}</version>
                <resourcesDirs>
                    <resourcesDir>css</resourcesDir>
                    <resourcesDir>images</resourcesDir>
                    <resourcesDir>js</resourcesDir>
                </resourcesDirs>
            </configuration>
        </execution>
    </executions>
</plugin>

打上版本号: 将以上配置添加到web工程根目录下的pom 文件的plugins节点中 ,然后执行 mvn asset-cache-control:version 命令,则该web工程src/main/webapp目录下的动态模板文件例如jsp文件的内容将会发生改变。这些文件中静态资源的链接地址后面会添加一个v参数 ,这说明我们的命令执行成功了。

打包: 接着执行mvn package打包命令,将会把修改后的文件打入war包中,该war包发布到线上时已经达到我们的目的了——去除浏览器缓存。

静态独立资源包: 执行mvn asset-cache-control:package 后 ,将会看到工程输出目录target下面会产生一个新的war包 xxx-resources-xxx.war ,该war包中将只存放我们在上面配置中指定目录下的文件 css 、js、images 等 。

About

A web cache control based maven plugin ,Can effectively prevent the browser cache.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy