【问题标题】:Trouble loading SVGs in Angular project on Apache在 Apache 的 Angular 项目中加载 SVG 时遇到问题
【发布时间】:2017-07-30 22:50:25
【问题描述】:

我已经上线了我的第一个 Angular 项目,服务于 Apache。我在某个地方找到了一个可以使用的 htaccess(现在不记得在哪里......)

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

不幸的是,我很喜欢 htaccess 文件。有了这个,我可以访问任何 Angular 路由,正如预期的那样,但是,我所有的 SVG 文件都会出现 403:

Forbidden

You don't have permission to access /assets/cross.svg on this server.
Server unable to read htaccess file, denying access to be safe

这些文件归正确的组所有,并且都设置为 664,我的所有文件也是如此,所以我不知道为什么加载 CSS 和 JS 文件,但 SVG 是 403。

我希望得到一些关于我哪里出错的建议/指导。

根据我的要求,这是目录规则:

<Directory /var/www/opweekends.api/public/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

【问题讨论】:

  • Apache 的目录规则是什么?
  • 如果我正确理解您的问题@ThinkingMedia,我已经从上面的 conf 添加了我的目录代码。

标签: apache angular .htaccess svg


【解决方案1】:

这里是 CakePHP 的重写规则。这很简单,而且一直对我有用。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.html [L]
</IfModule>

https://github.com/cakephp/app/blob/master/webroot/.htaccess

注意:^ 字符后有一个空格。不确定是否需要空间。

如果继续出现同样的错误,则不是重写问题。

【讨论】:

  • 我会试试看,不过这不就是一回事吗,只是直接点击目录,没有基集就忽略?
  • 这就是为什么我认为这可能不是重写问题。为了消除它作为一个原因,让我们尝试一下一直对我有用的方法。 ;)
  • 是的,这里也一样;只是想确定一下。更改 htaccess 并没有解决它,我不知道如何从这里调试:/
  • 您能否确认 Angular 正在尝试从服务器加载 SVG 文件,并且不希望 WebPack 将它们作为捆绑资产提供。检查浏览器网络面板并验证每个 SVG 文件都有一个 GET 请求。
  • 是的,每个 SVG 都有一个资产请求。这绝对是服务器端的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-08
  • 2020-06-08
  • 2011-12-12
相关资源
最近更新 更多