首页 > 其他分享 >设置 SVN 文件的 MIME 类型

设置 SVN 文件的 MIME 类型

时间:2023-08-28 10:37:56浏览次数:37  
标签:SVN 文件 浏览器 mime 设置 MIME type


脚本的代码放在 Google Code 上, CSS 和 JS 均直接调用 SVN 主干文件. 改写脚本的时候发现 IE6 以外的浏览器不能正常执行, 比如: 页面直接显示成代码, JavaScript 不执行, 且获得浏览器警告信息如下.

Resource interpreted as Script but transferred with MIME type text/plain

经过排查, 发现是 SVN 的 MIME 设置问题. Firefox, Chrome, IE9 等现代浏览器会通过判断获取文件的 MIME 类型, 调用不同的客户端程序或使用不同的方式来执行. 如果文件的 MIME 缺失或者有误, 那浏览器会按默认方式处理. 而老版本的 IE 浏览器会识别文件类型并更具识别到的类型来处理, 所以一般不存在执行问题.

为了 SVN 服务器上的文件也被正确执行, 需要修改 svn:mime-type.

手动设置

TortoiseSVN 和 Eclipse 等一类客户端可以对文件的属性进行设定. 以下是 TortoiseSVN 中的修改方式.

  1. 右击展开文件菜单, 选择 TortoiseSVN > Propertise.
  2. 添加或者修改 Mime-Type.
  3. 保存并提交 SVN.

在 Eclipse 中修改方法差不多, 文件的 SVN 属性的目录位置在 Team > Set Property.

自动匹配

SVN 有配置文件, 可以在里面进行配置.

  1. 打开 SVN 配置文件.
  • Linux: /etc/subversion/config
  • Windows: %APPDATA%\Subversion\config
  1. 设置 

enable-auto-props = yes

  1. .
  2. 找到 

auto-props

  1.  区域, 并添加文件的 mime-type. *.js = svn:mime-type=text/javascript *.css = svn:mime-type=text/css *.html = svn:mime-type=text/html

修改保存后, 新建对应后缀的文件, 提交时自动会带上设置的 mime-type.

后话

长久以来, SVN 对我来说只是一个代码管理工具, 会通过 Apache 或者 Nginx 等 Web 服务器来获取文件, 所以头一次遇到觉得诡异. 刚发现问题的时候没有去抓包, 还以为是 Google Code 的问题, 真是错怪它了. 事实上, Web 服务器提供一个 MIME 模块, 用来识别文件的 MIME, SVN 也一样. 只是 Apache 等默认打开了 MIME 自动匹配, 而 Subversion 没有.

 


标签:SVN,文件,浏览器,mime,设置,MIME,type
From: https://blog.51cto.com/u_16237557/7260803

相关文章

  • 【Ehcache技术专题】「入门到精通」带你一起从零基础进行分析和开发Ehcache框架的实战
    缓存大小的设置缓存大小的限制可以设置在CacheManager上,也可以设置在单个的Cache上。我们可以设置缓存使用内存的大小,也可以设置缓存使用磁盘的大小,但是使用堆内存的大小是必须设置的,其它可设可不设,默认不设就是无限制。在设置缓存大小的时候,我们可以设置缓存使用某一个存储器的最......
  • keepalived指定多个网卡设置vip
    添加vip地址(eth0和eth1)vrrp_instanceVI_1{stateMASTERinterfaceeth0virtual_router_id60priority100advert_int1authentication{auth_typePASSauth_pass1111}virtual_ipaddress{10.89.235.41/22......
  • 常用环境设置jvm内存
    参数解释:Xms—堆内存初始大小Xmx—堆内存最大值MetaspaceSize—永久内存初始大小MaxMetaspaceSize—永久内存最大值-XX:+UseConcMarkSweepGC  使用cms并行垃圾回收机制 内存大小设置:jstat-gc进程号 查看OU即是老年代(KB)根据老年代设置参数Java堆大小设置,Xms......
  • Docker安装redis、redis设置密码、挂载配置文件并以配置文件方式启动(避坑)
    1.拉取redis镜像:拉取最新版:dockerpullredis拉取指定版本,以6.2.7为例:dockerpullredis:6.2.72.在Linux环境中创建需要挂载的目录mkdir/usr/local/software/redis/6379/confmkdir/usr/local/software/redis/6379/datamkdir/usr/local/software/redis/6379/log3......
  • 如何在 Linux 中设置 SSH 无密码登录
    SSH(SecureSHELL)是一种开源且可信的网络协议,用于登录远程服务器以执行命令和程序。它还用于使用安全复制(SCP)命令和rsync命令通过网络将文件从一台计算机传输到另一台计算机。在本文中,我们将向您展示如何在基于RHEL的Linux发行版(例如CentOS、Fedora、RockyLinux和A......
  • System.ArgumentNullException:“String 引用没有设置为 String 的实例。
      使用c#控制器,获取前端的字段值的时候出现该问题:System.ArgumentNullException:“String引用没有设置为String的实例。Arg_ParamName_Name” ......
  • Django-HTML 中设置图片jquery 属性
    img代码如下<imgid="head-img"src="/static/blog/image/headimg.jpg.jpeg"style="height:100px;width:100px;">导入jquery 在HTML末尾加入以下代码<script>//找到头像的input标签绑定change事件$("#id_head_img").k(fu......
  • 深入理解Linux权限管理:掌握文件和目录权限设置
    一、Linux权限概念linux操作系统中有两类用户,一类是超级用户,另一类是普通用户。超级用户:比较豪横,在linux系统中做任何事情,不受限制。普通用户:在linux允许的权限下做有限的事情。在命令行提示符他们两的区别:如上为普通用户提示符为$而超级用户命令提示符为#1.1、su命令命令:su[用户......
  • 多用户git设置样本
     0准备:如果之前用过git,需要清空global设置:#取消全局配置gitconfig--global--unsetuser.namegitconfig--global--unsetuser.email2在本地建立仓库3在该仓库下设置:#每个项目Repo设置自己的user.emailgitconfiguser.email"[email protected]"gitconfigu......
  • XAPool的参数设置
    sleepTime:PoolKeeper检测时间间隔lifeTime:连接生命周期(上次访问时间-当前时间)deadLockMaxWait(:超过最大连接之后的调用getConnection的等待时间deadLockRetryWait:超过最大连接之后的调用getConnection等待,在等待中重试的时间间隔maxSize:连接池的容量deald-lock-max-wait和dead-......