2017-09-26 347 views
0

我正在开发一个Web应用程序,该应用程序在网络空间上动态分发多个.ics文件。所以现在我试图从邮件客户端观察这些.ics文件,例如macOS日历应用程序,Outlook或Google日历。除了谷歌日历以外,一切工作都很完美:将URL从URL添加到Google日历仅显示“忙碌”

如果我试图从URL(here)导入日历,我只是显示'busy'作为每个事件的主题(example)。这是一个奇怪的问题,因为它在所有其他应用程序中都像魅力一样。如果我下载当前的.ics文件并静态导入它,它也可以正常工作。 (所以这可以不是只是一个.ics内容问题)

那么,我已经检查了几个相关的问题/问题(见底部),但没有提供一个有能力/正确的解决方案。

有趣提(最后一个相关的问题把我带到这个):

,如果我重新安排路径和名称下面这工作

https://myurl.net/calendar.ics 

不行如果我使用以下某些模式:

https://myurl.net/ccalendar.ics 
https://myurl.net/foo/calendar.ics 

我也发布了这个问题在谷歌日历论坛,但建议在这里发布的东西。

感谢您的帮助提前!

问候

相关:

回答

0

经过一番实验,我决定使用谷歌上找到的ICS validator。它显示URL结果的MIME类型可能配置错误(text/plain应该是text/calendar)。 我已经注意到这一点,同时访问像https://myurl.net/foo/bar.ics的网址,并看到普通的.ics文件内容,而不是下载此文件。这似乎取决于浏览器,一些浏览器会自动正确解释此类型,但Google似乎没有。

但是:在我的应用程序WEB-INF中有一个名为的web.xml的配置文件。我手动定义了以*结尾的文件的MIME类型。ics:

<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日历也可以识别整个日历内容,而这些日历内容与其分发的URL无关。

编辑:

好吧经过紧张的测试有orruced没有更多的问题与任何日历,让这似乎是在我的情况的解决方案。 Outlook,macOS日历应用和Mozilla Thunderbird似乎正确猜测 MIME类型,谷歌没有。

0

尝试在此SO post所提供的解决方案:

我提供的GCal的日历URL没有以文件名结尾(我使用带有URL重写功能的PHP框架)。我更新了网址,在其中添加了 “/calendar.ics”并订阅了GCal中的网址,现在所有的 事件都显示正常,显示了所有详细信息。

+0

谢谢,但正如你可以看到我的问题,我已经尝试过这种模式。 我需要重命名文件或至少将其放在任何目录路径中。但这些都不起作用。 –

相关问题