我正在开发一个Web应用程序,它在Web空间上动态分发几个.ics文件。所以现在我试图从邮件客户端,如macOS日历应用程序,Outlook或Google日历中观察那些.ics文件。除谷歌日历外,所有内容都完美无缺:
如果我尝试从网址(here)导入日历,我只会显示“忙碌”字样。作为每个事件的主题(example)。这是一个奇怪的问题,因为它在所有其他应用程序中都像魅力一样。如果我下载当前的.ics文件并静态导入它也可以正常工作。 (所以这可以不只是一个.ics内容问题)
好吧,我已经查看了几个相关的问题/问题(见下),但没有提供有能力/正确的解决方案。
有趣的是(最后一个相关的问题让我想到了这一点):
如果我将路径和名称重新排列为以下内容,有效:
https://myurl.net/calendar.ics
如果我使用以下某些模式,无效:
https://myurl.net/ccalendar.ics
https://myurl.net/foo/calendar.ics
我也在谷歌日历论坛上发布了这个问题,但建议在这里发帖。
提前感谢您的帮助!
此致
相关:
答案 0 :(得分:0)
尝试使用此SO post中提供的解决方案:
我提供的日历网址GCal没有以文件名结尾(我 使用带有URL重写的PHP框架)。我更新了URL,附加了 " /calendar.ics"它并订阅了GCal中的URL,现在全部 事件似乎显示正常,显示所有细节。
答案 1 :(得分:0)
经过一些实验后,我决定使用谷歌上发现的ICS validator。它显示URL结果的MIME类型可能配置错误(text/plain
应为text/calendar
)。
在访问https://myurl.net/foo/bar.ics
等网址并查看普通.ics文件内容而不是下载此文件时,我已经注意到了这一点。这似乎取决于浏览器,一些浏览器会自动正确解释此类型,但Google似乎没有。
但是:我的应用程序WEB-INF中有一个名为 web.xml 的配置文件。我手动为以* .ics:
结尾的文件定义了MIME类型<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
...
<mime-mapping>
<extension>ics</extension>
<mime-type>text/calendar</mime-type>
</mime-mapping>
</web-app>
现在,即使Google日历也能识别整个日历内容,而与其分发的网址无关。
修改强>
好的,经过紧张的测试后,任何日历都没有问题,所以这似乎是我的解决方案。 Outlook,macOS日历应用程序和Mozilla Thunderbird似乎正确地猜测 MIME类型,Google没有。