【问题标题】:GAE: Serve CSS file dynamically with correct mime typeGAE:使用正确的 mime 类型动态提供 CSS 文件
【发布时间】:2016-05-18 09:49:22
【问题描述】:

我正在尝试以动态方式将我的所有 CSS 文件捆绑到一个文件中,并通过我的 Google 应用引擎提供这些文件。如果我在浏览器中访问 URL /app.css,这将有效:

- url: /app.css
  script: _corecss.php

当我像这样将它插入我的网页时:

<!DOCTYPE html>
<html lang="en">
<head>
<title>My Test App</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/app.css">
...

控制台显示错误,没有应用样式

Resource interpreted as Stylesheet but transferred with MIME type text/html:

当我查看 chrome 开发人员工具时,我可以看到设置了 content-length,但没有响应数据 - 不知道为什么,猜测是因为我意识到我没有将 CSS 发送到转储批次。我对我的 JavaScript 做了完全相同的事情,它似乎可以很好地加载内容类型设置为 text/html。

我google了一下错误,发现我可以在app.yaml中设置mime类型:

- url: /app.css
  mime_type: 'text/css'
  script: _corecss.php

但这不起作用。进一步的谷歌搜索表明 mime-type 指令只能在静态的东西上完成。

更多谷歌搜索,我发现我应该能够设置标题:

- url: /app.css
  script: _corecss.php
  http_headers:
  Content-Type: text/css

这也不起作用,关于是否允许内容类型的信息混杂。

我曾经在页面加载时重新生成文件并在有更改时存储它们,但 GAE 已停止对本地文件系统的访问,所以我不能再这样做了。

有什么想法可以生成我的 CSS 文件并提供它以便我的应用程序不会抱怨吗?

谢谢

【问题讨论】:

标签: google-app-engine app.yaml


【解决方案1】:

答案非常简单。在后端 PHP 脚本中设置 Content-type 标头:

header("Content-type: text/css");

现在一切正常。很难想象的人,所以我想我会回答这个问题(而不是删除它)以防其他人需要它。

【讨论】:

    猜你喜欢
    • 2011-08-25
    • 2016-12-20
    • 2011-04-13
    • 1970-01-01
    • 2017-10-26
    • 2018-11-28
    • 2013-10-13
    • 2018-02-07
    • 2011-01-03
    相关资源
    最近更新 更多