我在ubuntu 14.04上的apache HTTP服务器上运行了一个烧瓶应用程序。一切都很好,但我现在正在努力使事情安全并启动并运行HTTPS。在请求HTTP URL时,内容仍然可以正确呈现,但在将前缀更改为HTTPS时,不会加载静态CSS文件。
一些有用的细节和以前的尝试:
static/css
位置。 AddType
for CSS无法正常工作。sudo a2enmod mime
以确保启用了Apache模块,而且它是。js
和javascript
),但这也不起作用。 AddType
声明添加到位于/etc/apache/sites-available/FlaskApp.conf
的配置文件中(这是成功AddType text/javascript .js
声明所在的位置),我也尝试将{位于我的FlaskApp根目录中的AddType
文件中的{1}}声明,但两次尝试均未成功。使用.htaccess
前缀访问网站时,所有内容都可以正常加载,而不是http://
前缀。我试过从Chrome和Firefox访问它。
在Chrome中加载页面时查看控制台会显示所有CSS文件的以下内容:
https://
查看网络标签,Resource interpreted as Stylesheet but transferred with MIME type application/x-gzip
请求与http
请求之间的所有内容都相似,只是https
请求完全缺少https
部分。< / p>
尝试仅在Chrome中加载Response Headers
文件时,会尝试下载该文件,而不是在浏览器中显示该文件。
尝试仅在Firefox中加载/static/css/styles.css
文件时,会在浏览器中加载。但是,它不是ascii文本,而是混乱的字符,好像它正在加载二进制文件。这是Firefox中的控制台错误消息:
/static/css/styles.css
所以我的问题是,如何让我的HTTPS / Flask / Apache / Ubuntu设置正确返回静态css文件,以便我的页面正确呈现?
This建议和this建议看起来很有希望,但我不知道如何制作它以便任何点击The character encoding of the plain text document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the file needs to be declared in the transfer protocol or file needs to use a byte order mark as an encoding signature.
的请求都会返回带有“内容类型”的正确css文件“或”mimetype“设置正确。