jQuery 适用于本地主机,但不适用于网站
Posted
技术标签:
【中文标题】jQuery 适用于本地主机,但不适用于网站【英文标题】:jQuery works on local host, but not on website 【发布时间】:2011-02-16 01:48:36 【问题描述】:使用 Notepad++ 和 XAMPP 进行测试,然后通过 FTP 将其上传到网站。在我的代码的头部,我有这个调用 jQuery 和脚本:
<script type="text/javascript" src="/jquery.js"></script>
<script type="text/javascript" src="/portfolio.js"></script>
它在我的 XAMPP 服务器上本地运行良好。但是一旦上传到主机上,它就会抛出这个错误:
Resource interpreted as script but transferred with MIME type text/html.
不知道发生了什么,也不知道为什么使用 jQuery 很困难。有什么想法吗?
【问题讨论】:
想通了,看下面我的回答 【参考方案1】:这根本不是 jQuery 特有的。当您从服务器加载页面时,会向 Web 服务器发送请求以下载 /jquery.js
。在服务器的响应中,有一个 HTTP 标头向客户端提供有关文件类型的提示。这称为Content-Type
标头。上面的错误信息表明服务器(错误地)报告/jquery.js
的类型是text/html
,而它不是。
您必须修改远程 Web 服务器的配置,以确保具有 .js
扩展名的文件正确报告为其 MIME 类型为 application/x-javascript
而不是 text/html
。这可以通过 Apache 配置文件中的以下指令来完成:
AddType application/x-javascript .js
不过,我不确定为什么您的其他 .js
文件有效。无论如何,如果您因任何原因无法修改 Web 服务器配置,您可以尝试使用 externally hosted copy of jQuery。
如果您在 Mac OS X 上使用 Safari,也可能会遇到 WebKit/Safari 中的错误。请参阅 this related question。
【讨论】:
那么我该怎么做才能解决它? Portfolio.js 文件加载正常【参考方案2】:这意味着您的服务器未配置为对 js 文件使用正确的内容类型。它将它们作为 text/html 而不是 text/javascript 发送。可能是服务器配置不正确。
【讨论】:
【参考方案3】:为什么不使用很多人可能已经缓存并始终保持更新的谷歌托管版本等等。
http://code.google.com/apis/ajaxlibs/
【讨论】:
【参考方案4】:原来是文件名“jQuery.js”搞砸了。在本地,大写的“U”不是问题,但在服务器上却是导致它崩溃的原因。我什至不知道会发生这种情况:-/
【讨论】:
如果您在 Windows 上进行开发并在 Linux 上进行部署,那么区分大小写就会发挥作用。以上是关于jQuery 适用于本地主机,但不适用于网站的主要内容,如果未能解决你的问题,请参考以下文章
wordpress 插件适用于本地主机,但不适用于远程服务器
PHP header('Content-Type : image/jpeg') 适用于本地主机但不适用于真实服务器
Java Spring MVC WebSocket 应用程序仅适用于本地应用程序服务器,但不适用于 openshift 主机