Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
D
drupal
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Custom Issue Tracker
Custom Issue Tracker
Labels
Merge Requests
294
Merge Requests
294
Requirements
Requirements
List
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Analytics
Analytics
Code Review
Insights
Issue
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
project
drupal
Commits
563c673e
Commit
563c673e
authored
Oct 11, 2010
by
Dries
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- Patch
#101227
by mikeytown2, Owen Barton, grendzy: added Gzip aggregated CSS and JS.
parent
c5410714
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
62 additions
and
1 deletion
+62
-1
.htaccess
.htaccess
+25
-0
INSTALL.txt
INSTALL.txt
+3
-0
includes/common.inc
includes/common.inc
+19
-1
sites/default/default.settings.php
sites/default/default.settings.php
+15
-0
No files found.
.htaccess
View file @
563c673e
...
...
@@ -109,6 +109,31 @@ DirectoryIndex index.php index.html index.htm
RewriteCond
%{REQUEST_FILENAME} !-d
RewriteCond
%{REQUEST_URI} !=/favicon.ico
RewriteRule
^ index.php [L]
# Rules to correctly serve gzip compressed CSS and JS files.
# Requires both mod_rewrite and mod_headers to be enabled.
<
IfModule
mod_headers.c
>
# Serve gzip compressed CSS files if they exist and the client accepts gzip.
RewriteCond
%{HTTP:Accept-encoding} gzip
RewriteCond
%{REQUEST_FILENAME}\.gz -s
RewriteRule
^(.*)\.css $1\.css\.gz [QSA]
# Serve gzip compressed JS files if they exist and the client accepts gzip.
RewriteCond
%{HTTP:Accept-encoding} gzip
RewriteCond
%{REQUEST_FILENAME}\.gz -s
RewriteRule
^(.*)\.js $1\.js\.gz [QSA]
# Serve correct content types, and prevent mod_deflate double gzip.
RewriteRule
\.css\.gz$ - [T=text/css,E=no-gzip:1]
RewriteRule
\.js\.gz$ - [T=text/javascript,E=no-gzip:1]
<
FilesMatch
"(\.js\.gz|\.css\.gz)$"
>
# Serve correct encoding type.
Header
append
Content-Encoding gzip
# Force proxies to cache gzipped & non-gzipped css/js files separately.
Header
append
Vary Accept-Encoding
</
FilesMatch
>
</
IfModule
>
</
IfModule
>
# $Id$
INSTALL.txt
View file @
563c673e
...
...
@@ -44,6 +44,9 @@ OPTIONAL TASKS
Clean URLs support on IIS, see "Using Clean URLs with IIS"
(http://drupal.org/node/3854) in the Drupal handbook.
- To serve gzip compressed CSS and JS files on an Apache web server, you will
need the mod_headers module and the ability to use local .htaccess files.
- Various Drupal features require that the web server process (for
example, httpd) be able to initiate outbound connections. This is usually
possible, but some hosting providers or server configurations forbid such
...
...
includes/common.inc
View file @
563c673e
...
...
@@ -3366,6 +3366,15 @@ function drupal_build_css_cache($css) {
if
(
!
file_exists
(
$uri
)
&&
!
file_unmanaged_save_data
(
$data
,
$uri
,
FILE_EXISTS_REPLACE
))
{
return
FALSE
;
}
// If CSS gzip compression is enabled, clean URLs are enabled (which means
// that rewrite rules are working) and the zlib extension is available then
// create a gzipped version of this file. This file is served conditionally
// to browsers that accept gzip using .htaccess rules.
if
(
variable_get
(
'css_gzip_compression'
,
TRUE
)
&&
variable_get
(
'clean_url'
,
0
)
&&
extension_loaded
(
'zlib'
))
{
if
(
!
file_exists
(
$uri
.
'.gz'
)
&&
!
file_unmanaged_save_data
(
gzencode
(
$data
,
9
,
FORCE_GZIP
),
$uri
.
'.gz'
,
FILE_EXISTS_REPLACE
))
{
return
FALSE
;
}
}
// Save the updated map.
$map
[
$key
]
=
$uri
;
variable_set
(
'drupal_css_cache_files'
,
$map
);
...
...
@@ -4655,9 +4664,18 @@ function drupal_build_js_cache($files) {
$uri
=
$jspath
.
'/'
.
$filename
;
// Create the JS file.
file_prepare_directory
(
$jspath
,
FILE_CREATE_DIRECTORY
);
if
(
!
file_unmanaged_save_data
(
$contents
,
$uri
,
FILE_EXISTS_REPLACE
))
{
if
(
!
file_
exists
(
$uri
)
&&
!
file_
unmanaged_save_data
(
$contents
,
$uri
,
FILE_EXISTS_REPLACE
))
{
return
FALSE
;
}
// If JS gzip compression is enabled, clean URLs are enabled (which means
// that rewrite rules are working) and the zlib extension is available then
// create a gzipped version of this file. This file is served conditionally
// to browsers that accept gzip using .htaccess rules.
if
(
variable_get
(
'js_gzip_compression'
,
TRUE
)
&&
variable_get
(
'clean_url'
,
0
)
&&
extension_loaded
(
'zlib'
))
{
if
(
!
file_exists
(
$uri
.
'.gz'
)
&&
!
file_unmanaged_save_data
(
gzencode
(
$contents
,
9
,
FORCE_GZIP
),
$uri
.
'.gz'
,
FILE_EXISTS_REPLACE
))
{
return
FALSE
;
}
}
$map
[
$key
]
=
$uri
;
variable_set
(
'drupal_js_cache_files'
,
$map
);
}
...
...
sites/default/default.settings.php
View file @
563c673e
...
...
@@ -377,6 +377,21 @@
*/
# $conf['omit_vary_cookie'] = TRUE;
/**
* CSS/JS aggregated file gzip compression:
*
* By default, when CSS or JS aggregation and clean URLs are enabled Drupal will
* store a gzip compressed (.gz) copy of the aggregated files. If this file is
* available then rewrite rules in the default .htaccess file will serve these
* files to browsers that accept gzip encoded content. This allows pages to load
* faster for these users and has minimal impact on server load. If you are
* using a webserver other than Apache httpd, or a caching reverse proxy that is
* configured to cache and compress these files itself you may want to uncomment
* one or both of the below lines, which will prevent gzip files being stored.
*/
# $conf['css_gzip_compression'] = FALSE;
# $conf['js_gzip_compression'] = FALSE;
/**
* String overrides:
*
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment