0

我试图在我的页面上包含 jquery.js 和 javascript.js 文件,如上一个问题中所建议的那样,通过 Servlet 类传递它,例如:

 response.getDocument().body().appendChild(new DataNode("<script src=\"" + themeUri
                + "/js/nativeinit.js\" type=\"text/javascript\"></script>",""));

        response.getDocument().body().appendChild(new DataNode("<script src=\"" + themeUri
                + "/js/jquery.min.js\" type=\"text/javascript\"></script>",""));

当我在浏览器中看到控制台时,虽然我看到了两个文件的消息:

Resource interpreted as Script but transferred with MIME type text/html: "http:8080/uri/js/nativeinit.js". myhost/:47

Resource interpreted as Script but transferred with MIME type text/html: "http:8080/uri/js/jquery.min.js". myhost/:47

接着:

Uncaught SyntaxError: Unexpected token <                     nativeinit.js:1
Uncaught SyntaxError: Unexpected token <                     jquery.min.js:1

出了什么问题,它无法将它们作为脚本读取?为什么这个意外令牌的奇怪消息?我应该更改/添加什么?

更新:

我还在我的 web.xml 文件中添加了:

<mime-mapping>
        <extension>js</extension>
        <mime-type>application/javascript</mime-type>
    </mime-mapping>

但是相同消息的问题仍然存在。我知道@Javascript注释是 vaadin 7 中推荐的方式,但我认为它应该在常用方式上也能正常工作。我没有在 Servlet 类中设置内容类型。我只能在那里使用BootstrapPageRespone来自https://vaadin.com/api/的类,它不提供来自ServletResponse. 否则我也会以编程方式设置它。

4

2 回答 2

0

检查这个问题:Chrome 说“资源解释为脚本,但使用 MIME 类型文本/纯文本传输。”,给出了什么?- 也许当浏览器请求您的脚本时,它会以文本/html 形式从服务器获取答案。检查服务器响应的 MIME 类型。

于 2013-10-02T11:08:16.550 回答
0

推荐的方法是使用@Javascript注解,如本文所述

于 2013-10-02T12:40:44.477 回答