CSS文件未下载 - Flask

0 投票
1 回答
790 浏览
提问于 2025-04-18 16:45

我最近遇到了一个很奇怪的问题,我的浏览器(Chrome、Safari、Firefox)都无法下载一个外部的CSS文件。我正在为Heroku构建一个Python Flask应用,开发是在本地服务器上进行的(使用gunicorn和Flask的默认服务器)。当我加载我的主页时,其他内容都正常加载,唯独我的主样式表没有加载。<link>标签在Chrome的开发者工具中可以看到。

<link rel="stylsheet" href="/static/main.4dd3f5a6.css" type="text/css">

我可以点击href,然后会打开一个新标签页,显示我的压缩CSS文件。但是,当我在Resources标签下查看时,样式表却没有显示出来。我在网上找到的一个可能的问题是,我的本地服务器可能用错误的Content-Type来提供CSS文件。不过,当我在Network标签下查看Content-Type时,样式表根本没有显示在那里!我使用Flask-Assets来加载我的资源,似乎对JavaScript没问题,但CSS却不行。这是我设置webassets的一些相关代码。

asset_env = Environment(app)
asset_env.debug = True
asset_env.url = app.static_url_path
asset_env.append_path("assets")

js_bundle = Bundle("js/*", filters="jsmin", output="main.%(version)s.js")
css_bundle = Bundle("css/*", "css/font-awesome-4.1.0/css/font-awesome.css",
                    filters="cssmin", output="main.%(version)s.css")
asset_env.register("js", js_bundle)
asset_env.register("css", css_bundle)

我也尝试过将应用部署到Heroku(目前还不是生产环境),但在他们的服务器上也遇到了同样的问题。

有没有什么想法?

1 个回答

1

虽然我来得有点晚,但我也遇到了同样的问题。

把类型属性放到链接语句的前面后,它就正常工作了。

<link type="text/css" href="{{ ASSET_URL }}" rel="stylesheet">

而不是

<link rel="stylsheet" href="{{ ASSET_URL }}" type="text/css">

撰写回答