【问题标题】:Automatically adding SourceMap headers for JavaScript requests为 JavaScript 请求自动添加 SourceMap 标头
【发布时间】:2012-06-23 12:47:32
【问题描述】:

我已经开始使用 SourceMaps 并且想知道如果存在 .map 文件以用于使用 .htaccess 的 JavaScript 请求,是否有一种方法可以自动设置适当的标头,而不必修改原始 JavaScript 文件。

我已经做了类似的事情来提供缩小的 JavaScript(如果存在)并且我没有调试:

RewriteCond %{REQUEST_FILENAME}        \.(php|js)
RewriteRule .                          - [E=DEBUG:true]

RewriteCond %{ENV:DEBUG}               !^true$
RewriteCond %{REQUEST_URI}             ^(.+)\.js$
RewriteCond %{DOCUMENT_ROOT}%1-min.js  -f
RewriteRule .                          %1-min.js [L]

我想它基本上可以归结为:如果某个文件针对某种类型的请求存在,我该如何添加额外的 HTTP 标头?

更新

解决方法如下:

# If serving minified js and a SourceMap file exists, send appropriate header
RewriteCond %{REQUEST_URI}          ^(.+-min\.js)$
RewriteCond %{DOCUMENT_ROOT}%1.map  -f
RewriteRule .                       - [L,E=SOURCE_MAP:%{REQUEST_URI}.map]

Header set X-SourceMap "%{SOURCE_MAP}e" env=SOURCE_MAP

【问题讨论】:

    标签: javascript .htaccess mod-rewrite


    【解决方案1】:

    最终解决方案请参见上面 Nev Stokes 所做的编辑

    RewriteCond %{REQUEST_FILENAME}        \.(php|js)
    RewriteRule .                          - [E=DEBUG:true]
    
    RewriteCond %{ENV:DEBUG}               !^true$
    RewriteCond %{REQUEST_URI}             ^(.+)\.js$
    RewriteCond %{DOCUMENT_ROOT}%1-min.js  -f
    RewriteRule [^/]+\.js$                 %1-min.js [L,E=SOURCE_MAP:%{REQUEST_URI}]
    
    Header set X-SourceMap "%{SOURCE_MAP}e" env=SOURCE_MAP
    

    我无法测试 Header 部分,因为我的测试服务器没有安装 mod_headers。

    【讨论】:

    • 感谢@Gerben 为我指明正确的方向 - 我会接受您的回答,但我需要进行一些更改,我将在原始问题中发布这些更改作为最终解决方案。
    猜你喜欢
    • 1970-01-01
    • 2016-08-22
    • 2013-11-13
    • 2011-05-04
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    相关资源
    最近更新 更多