如何仅发布捆绑/缩小的脚本

时间:2014-02-13 05:07:10

标签: asp.net asp.net-mvc asp.net-mvc-4 azure bundling-and-minification

我有一个部署到Azure的MVC4项目。捆绑和缩小工作绝对正常。

所有脚本文件都在/ js文件夹中,这些文件夹捆绑在/ scripts / js

当我使用msdeploy发布到Azure时,我希望只部署捆绑/缩小的脚本文件。我不希望任何人通过猜测网址来访问我的未缩小的脚本。

我理解MVC捆绑在运行时发生,因此需要非捆绑文件即时创建捆绑包。这可能需要像grunt那样自动化吗?

想知道当你不想发布非捆绑的js时人们在这种情况下使用的部署策略。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

他们在页面加载上获取你的脚本,所以我不明白为什么他们看到未明确的版本应该是一个大问题,除非你在你的未明确版本中有疯狂或令人反感的评论。用户可以使用javascript格式化程序,如讨论in this SO post,将缩小的文件恢复为可读格式。

但是,出于您的顾虑,您可以直接在已部署的/js文件夹中删除web.config文件,以防止提供任何内容。在我的测试中,这并没有影响缩小。虽然如果你把它放在你的本地文件夹中,你会在调试模式下捆绑错误(因为调试模式会提供单个文件,而这个web.config不会提供任何服务):

<?xml version="1.0"?>
<configuration>
    <system.web>
        <authorization>
            <deny users="*" />
        </authorization>
    </system.web>
</configuration>

另一个问题是,根据你看到一个未明细化的脚本的偏执程度,你可能必须编写自己的BundleBuilder类,原因在于How to prevent User-Agent: Eureka/1 to return source code,其中揭示了用户如何看到带有注释的未分类的包。改变他们的用户代理。